diff --git a/package.json b/package.json
index eebc486..76c6b40 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"axios": "^1.4.0",
"codemirror": "^6.0.1",
"cropperjs": "^1.5.13",
+ "dayjs": "^1.11.9",
"i": "^0.3.7",
"js-cookie": "^3.0.5",
"npm": "^9.6.6",
@@ -29,11 +30,11 @@
"devDependencies": {
"@arco-design/web-vue": "^2.45.3",
"@vitejs/plugin-vue": "^4.2.1",
- "unplugin-vue-components": "^0.24.1",
"eslint": "^8.40.0",
"eslint-plugin-vue": "^9.12.0",
"mockjs": "^1.1.0",
"sass": "^1.62.1",
+ "unplugin-vue-components": "^0.24.1",
"vite": "^4.3.5",
"vite-plugin-mock": "^3.0.0",
"vite-svg-loader": "^4.0.0"
diff --git a/src/api/doctor/list.js b/src/api/doctor/list.js
index a7a4348..0853a07 100644
--- a/src/api/doctor/list.js
+++ b/src/api/doctor/list.js
@@ -42,21 +42,28 @@ export function getDoctorDetail(id){
}
export function departmentList(){ //获取科室列表
return request({
- url:'/admin/department/custom/list',
+ url:'/basic/department/custom/list',
method: 'get'
})
}
- export function decryptCard(user_id){
+ export function decryptCard(params){
return request({
- url:'/decrypt/card/'+user_id,
- method: 'get'
- })
- }
- export function hospitalList(params){ //获取医院地址列表
- return request({
- url:'/admin/hospital/list',
+ url:'/decrypt/card/num',
method: 'get',
params
})
}
+ export function hospitalList(params){ //获取医院地址列表
+ return request({
+ url:'/basic/hospital/list',
+ method: 'get',
+ params
+ })
+ }
+ export function expertiseList(){ //获取专长列表
+ return request({
+ url:'/basic/expertise/list',
+ method: 'get'
+ })
+ }
\ No newline at end of file
diff --git a/src/api/oss.js b/src/api/oss.js
index b605565..a5e06dd 100644
--- a/src/api/oss.js
+++ b/src/api/oss.js
@@ -1,4 +1,5 @@
import request from '../utils/request'
+
export function ossSign(params){
return request({
url:"/sign/oss",
@@ -11,7 +12,7 @@ export function ossUpload(url,data){
url,
method: 'post',
data,
- header:{
+ headers:{
'Content-Type': 'multipart/form-data'
}
})
diff --git a/src/components/DeleteModal.vue b/src/components/DeleteModal.vue
index 2b89a27..55e35f7 100644
--- a/src/components/DeleteModal.vue
+++ b/src/components/DeleteModal.vue
@@ -92,7 +92,6 @@ watch(() => props.visible,(value) => {
const handleConfirm = () => {
proxy.$refs.modalFormRef.validate((valid) => {
if (!valid) {
- console.log(delType.value)
// Akiraka 20230210 请求接口
props.apiDelete({ [delType.value]: data.value }).then(response => {
// Akiraka 20230210 关闭弹窗
@@ -102,8 +101,6 @@ const handleConfirm = () => {
proxy.$notification.error(response.message);
}
deleteVisible.value = false;
- console.log(response)
-
})
}
})
diff --git a/src/components/upload.vue b/src/components/upload.vue
index f28b289..e580c72 100644
--- a/src/components/upload.vue
+++ b/src/components/upload.vue
@@ -1,22 +1,82 @@
-
-
-
\ No newline at end of file
+ } else {
+ proxy.$notification.error(message);
+ }
+ }
+
\ No newline at end of file
diff --git a/src/directive/permission/permission.js b/src/directive/permission/permission.js
index b9f02d3..29fdf10 100644
--- a/src/directive/permission/permission.js
+++ b/src/directive/permission/permission.js
@@ -6,7 +6,7 @@ export default {
const { value } = binding;
const permissions = store.buttonPermissions;
const all_permission = '*'
- if (typeof value === 'string') {
+ if (typeof value === 'string' && permissions && permissions.length>0) {
const hasPermission = permissions.some((permission) => {
return all_permission==permission || value === permission;
})
diff --git a/src/utils/request.js b/src/utils/request.js
index b18d3f5..39c5dd2 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -8,7 +8,7 @@ const service = axios.create({
baseURL:import.meta.env.VITE_BASE_URL,
timeout: 8000,
headers:{
- 'Content-Type':'application/x-www-form-urlencoded',
+ 'Content-Type':'application/json',
'Authorization':''
}
});
@@ -21,7 +21,7 @@ service.interceptors.request.use(
// 设置请求头部 Authorization
if (store.token) {
config.headers['Authorization'] = 'Bearer ' + store.token;
- config.headers['Content-Type'] = 'application/json'
+ //config.headers['Content-Type'] = 'multipart/form-data'
}
return config;
},
diff --git a/src/views/admin/sys-role/index.vue b/src/views/admin/sys-role/index.vue
index d76a05f..c50955a 100644
--- a/src/views/admin/sys-role/index.vue
+++ b/src/views/admin/sys-role/index.vue
@@ -108,7 +108,7 @@
:check-strictly="false"
:data="treeData"
ref="tree"
- checked-strategy="child"
+ checked-strategy="all"
@check="checkTree"
:only-check-leaf="true"
:default-expand-all="true"
@@ -155,7 +155,8 @@
ref,
getCurrentInstance,
nextTick,
- watch
+ watch,
+ shallowRef
} from 'vue';
import {
getRole,
@@ -204,6 +205,7 @@
sort: 0,
role_status: '',
is_admin: '',
+ menu_ids:[]
});
const scopeForm = reactive({});
@@ -314,8 +316,7 @@
const tree=ref(null);
const checkTree=(checkedKeys,data)=>{
allCheckKeys.value=checkedKeys.concat(data.halfCheckedKeys);
- console.log(checkedKeys);
- console.log(data);
+ console.log(allCheckKeys.value);
// if(data.checked){
// console.log(data.node.parent_id)
// tree.value.selectNode(data.node.parent_id,true);
@@ -345,6 +346,7 @@
const { code, data, message } = await roleDetail(record.role_id);
if (code == 200) {
Object.assign(modalForm, data);
+ allCheckKeys.value=data.menu_ids;
//过滤掉父级节点
const res2 = data.menu_ids.filter(item1 => !allParentId.some(item2 => item2 === item1))
checkedKeys.value = res2;
@@ -413,8 +415,7 @@
proxy.$refs.modalFormRef.validate(async (valid) => {
// 如果 valid 为空则数据校验通过
if (!valid) {
- console.log(checkedKeys.value);
- modalForm.menu_ids = allCheckKeys.value;
+ modalForm.menu_ids= allCheckKeys.value;
let res;
if (modalForm.role_id) {
const {
diff --git a/src/views/admin/sys-user/index.vue b/src/views/admin/sys-user/index.vue
index 7781448..85d123d 100644
--- a/src/views/admin/sys-user/index.vue
+++ b/src/views/admin/sys-user/index.vue
@@ -87,7 +87,7 @@
{{(rowIndex+1)+(pager.page-1)*10}}
- {{ record.role.role_name}}
+ {{ record.role_name?.role_name}}
{{ record.dept?.dept_name }}
@@ -609,7 +609,8 @@ function useModalOperate() {
const modalTitle = ref('默认标题');
// Form
- const modalForm = reactive({ status: null });
+ const modalForm = reactive({ status: null,role:{},post:{},dept:{}
+ });
// AddRules
const rules = {
diff --git a/src/views/doctor/doctor-list/index.vue b/src/views/doctor/doctor-list/index.vue
index cb331ea..39faf46 100644
--- a/src/views/doctor/doctor-list/index.vue
+++ b/src/views/doctor/doctor-list/index.vue
@@ -91,7 +91,7 @@
详情
+ @click="handleDetail(record)">详情
修改
{ deleteVisible = true; deleteData = [record.doctor_id]; }"> 删除
@@ -108,38 +108,50 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- {{modalForm.user_name}}
+
-
-
+
+
+
+
+
{{modalForm.user_doctor_info.card_num_mask}}
{showEye=true}" />
-
+
{{id_card_num}}
{showEye=false}" />
-
+
-
- {{modalForm.user.mobile}}
+
+
@@ -151,23 +163,28 @@
-
+
-
-
+
+
+ {{item.hospital_name}}
+
+
-
+
{{item.department_custom_name}}
+ :value="item.department_custom_id" :label="item.department_custom_name">
+ {{item.department_custom_name}}
+
@@ -181,7 +198,11 @@
-
+
+ {{item.doctor_title_name}}
+
+
@@ -200,30 +221,33 @@
-->
-
-
+
+
-
-
+
+
+ {{item.expertise_name}}
+
-
+
-
+
@@ -233,135 +257,193 @@
是否推荐
-
-
+
+
+ v-model="modalForm.is_recommend" />
-
+
理由:平台合作
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 医师执业证(点击图片查看大图)
-
-
-
+ v-if="(modalForm.user_doctor_info.license_cert && modalForm.user_doctor_info.license_cert.length>0) || modalSatus!='detail'">
+
+ *医师执业证(点击图片查看大图)
+
+
+
+
+
+
+ v-if="(modalForm.user_doctor_info.qualification_cert && modalForm.user_doctor_info.qualification_cert.length>0) || modalSatus!='detail'">
-
- 医师资格证(点击图片查看大图)
+ *医师资格证(点击图片查看大图)
+
-
-
+
+
+
+
+
+
+
+
+
+ *医师职称证(点击图片查看大图)
+
+
+
+
+
+
+
+
+ v-if="modalForm.user_doctor_info.id_card_front || modalSatus!='detail' ">
-
- 医师职称证(点击图片查看大图)
+ 医师身份证正面(点击图片查看大图)
+
-
-
+
+
+
+
+ v-if="modalForm.user_doctor_info.id_card_back || modalSatus!='detail' ">
-
- 医师身份证(点击图片查看大图)
+
+ 医师身份证反面(点击图片查看大图)
-
-
+
+
+
+
-
+
-
+
医师手写签名(点击图片查看大图)
-
-
-
+
+
+
+
+
-
-
+
-
+
医师二维码(点击图片查看大图)
-
+
-
+
-
+
-
+
-
- 启用
- 禁用
- 保存
+
+ 保存
+
+
+
+ 保存
拉黑
- 删除
+ 删除
@@ -377,8 +459,9 @@
@@ -704,7 +1088,8 @@
border-radius: 50%;
}
- .arco-form-item-layout-horizontal:first-child {
+ .arco-form-item-layout-horizontal:first-child,
+ .arco-form-item-layout-horizontal:nth-child(2) {
align-items: center;
}
@@ -722,4 +1107,7 @@
display: flex;
align-items: center;
}
+ .cert .arco-form-item-label-col{
+ flex: 0 0 8px!important;
+ }
\ No newline at end of file