This commit is contained in:
2025-08-05 14:49:37 +08:00
parent a7c1cb61e1
commit bb2ffd967d
6 changed files with 2845 additions and 208 deletions

View File

@@ -84,6 +84,7 @@ const mainRoutes = {
{ path: '/mergeList', component: _import('modules/certificate/mergeList'), name: 'mergeList', meta: { title: '小班、自考证书', isTab: true } },
{ path: '/medicalrecords-medicalList', component: _import('modules/medicalrecords/medicalList'), name: 'medicalrecords-medicalList', meta: { title: '医案列表', isTab: true } },
{ path: '/medicalrecords-userList', component: _import('modules/medicalrecords/userList'), name: 'medicalrecords-userList', meta: { title: '审核人员列表', isTab: true } },
],
beforeEnter (to, from, next) {

View File

@@ -1,17 +1,31 @@
<template>
<div class="tree_box">
<div style="overflow: hidden" v-if="source == 'tags'">
<div style="overflow: hidden" v-if="source == 'tags'&&!isborrow">
<p
class="info_bg"
style="overflow: hidden; white-space: nowrap; text-overflow: ellipsis"
>
当前{{currentNode&&['wait','false','all','success'].includes(currentNode.data.id)?'状态':'标签' }}<span style="color: #17b3a3; font-weight: 600"
:style="`${currentNode&&currentNode.data.color?`color: ${currentNode.data.color}`:''}`"
>{{
currentNode ? currentNode.data.title : ""
}}</span>
当前{{
currentNode &&
["wait", "false", "all", "success"].includes(currentNode.data.id)
? "状态"
: "标签"
}}<span
style="color: #17b3a3; font-weight: 600"
:style="
`${
currentNode && currentNode.data.color
? `color: ${currentNode.data.color}`
: ''
}`
"
>{{ currentNode ? currentNode.data.title : "" }}</span
>
</p>
<el-button v-if="currentNode&&!['wait','false','all'].includes(currentNode.data.id)"
<el-button
v-if="
currentNode && !['wait', 'false', 'all'].includes(currentNode.data.id)
"
type="primary"
@click="addOrUpdateHandle()"
style="float: right"
@@ -36,7 +50,7 @@
<!-- show-checkbox -->
<!-- :allow-drop="allowDrop" -->
<div class="custom-tree-container">
<el-tree
<el-tree style="background-color: transparent;"
:draggable="false"
:allow-drop="false"
:highlight-current="true"
@@ -47,7 +61,6 @@
default-expand-all
:filter-node-method="filterNode"
ref="tree"
@node-click="handleNodeClick"
:expand-on-click-node="false"
>
@@ -59,7 +72,13 @@
:class="
`${currentNode && currentNode.data.id == data.id ? `isSelect` : ''}`
"
:style="`${currentNode && currentNode.data.id == data.id&&data.bgcolor ? `background-image: linear-gradient(-45deg, #fff, ${data.bgcolor});` : ''}`"
:style="
`${
currentNode && currentNode.data.id == data.id && data.bgcolor
? `background-image: linear-gradient(-45deg, #fff, ${data.bgcolor});`
: ''
}`
"
style=" padding-left: 5px;
box-sizing: border-box;"
>
@@ -68,10 +87,15 @@
><el-checkbox
@change="selectShop(data)"
:value="selectArr.includes(data.id)"
v-if="data.isLast == 1 && source == 'shop'"
v-if="data.isLast == 1 && source == 'shop'&&!isborrow"
style="margin-right: 10px"
></el-checkbox
><span :style="`${data.color?`color:${data.color};font-weight:bold`:''}`">{{ node.label }}</span></span
><span
:style="
`${data.color ? `color:${data.color};font-weight:bold` : ''}`
"
>{{ node.label }}</span
></span
>
<span v-if="source == 'tags'">
<!-- v-if="node.level <= 1" -->
@@ -79,7 +103,9 @@
type="text"
size="mini"
@click.stop="handleClickNodes(node, data, 'addChildren')"
v-if="data.isLast != 1&&!disableAddChild&&!data.isDisableAddChild"
v-if="
data.isLast != 1 && !disableAddChild && !data.isDisableAddChild&&!isborrow
"
>
添加下级
</el-button>
@@ -92,7 +118,8 @@
</el-button> -->
<!-- v-if="node.childNodes.length == 0" -->
<el-button v-if="!data.disabled"
<el-button
v-if="!data.disabled&&!isborrow"
type="text"
size="mini"
@click.stop="remove(data)"
@@ -120,6 +147,8 @@ export default {
"axiosType",
"axiosResultKey",
"disableAddChild",
"isborrow",
],
data() {
return {
@@ -414,7 +443,7 @@ export default {
children: [],
delFlag: 0,
isLast: 0,
icon:'',
icon: "",
pid: data.id,
sort: 0,
title: ""
@@ -441,7 +470,7 @@ export default {
children: [],
delFlag: 0,
isLast: 0,
content:'',
content: "",
pid: 0,
sort: 0,
title: ""
@@ -860,6 +889,7 @@ export default {
height: 100%;
float: left;
border: 1px solid #bababa;
background-color: #fff;
border-radius: 10px;
padding: 15px;
box-sizing: border-box;

View File

@@ -481,12 +481,12 @@
alt=""
/>
<span class="el-upload-list__item-actions">
<!-- <span
<span
class="el-upload-list__item-preview"
@click="handlePictureCardPreview(file)"
>
<i class="el-icon-zoom-in"></i>
</span> -->
</span>
<span
v-if="!disabled"
@@ -630,6 +630,13 @@
>
</span>
</el-dialog>
<el-dialog :visible.sync="dialogVisibleImg" :append-to-body="true">
<img
width="100%"
:src="dataForm.productImages"
alt=""
/>
</el-dialog>
</div>
</template>
@@ -677,6 +684,7 @@ export default {
props: ["data", "pageType", "dataInfo", "labelId", "currentNode"],
data() {
return {
dataForm:{},
isShowWord: false,
imagePreviews: false,
record: {},
@@ -1610,7 +1618,8 @@ this.addCertificateForm.mark=''
// this.getCate(val)
},
handlePictureCardPreview(file) {
// 图片预览逻辑
this.dataForm.productImages = file.url;
this.dialogVisibleImg = true;
},
handleClose(done) {
done();
@@ -1646,17 +1655,17 @@ this.addCertificateForm.mark=''
margin-bottom: 10px !important;
}
/deep/.custom-upload {
min-height: 60px !important;
min-height: 120px !important;
}
/deep/.custom-upload .el-upload--picture-card {
width: 60px !important;
height: 60px !important;
line-height: 70px !important;
width:80px !important;
height:80px !important;
line-height:80px !important;
}
/deep/.custom-upload .el-upload-list--picture-card .el-upload-list__item {
width: 60px !important;
height: 60px !important;
line-height: 60px !important;
width:80px !important;
height:80px !important;
line-height:80px !important;
}
/deep/.custom-upload-box .el-form-item__label {
line-height: 60px !important;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -6,11 +6,7 @@
@keyup.enter.native="getDataList()"
>
<el-form-item label="姓名">
<el-input
v-model="dataForm.name"
placeholder="请输入姓名"
clearable
>
<el-input v-model="dataForm.name" placeholder="请输入姓名" clearable>
</el-input>
</el-form-item>
<el-form-item label="所属地域">
@@ -29,11 +25,7 @@
"
>查询</el-button
>
<el-button
type="primary"
@click="addHandle()"
>新增</el-button
>
<el-button type="primary" @click="addHandle()">新增</el-button>
</el-form-item>
</el-form>
<el-table
@@ -42,18 +34,19 @@
v-loading="dataListLoading"
style="width: 100%"
>
<el-table-column
label="序号"
type="index"
align="center"
width="60">
<el-table-column label="序号" type="index" align="center" width="60">
</el-table-column>
<el-table-column label="姓名" align="center" width="120">
<template slot-scope="scope">{{ scope.row.name }}</template>
</el-table-column>
<el-table-column label="头像" align="center" width="120">
<template slot-scope="scope">
<img width="50px" :src="scope.row.icon" v-if="scope.row.icon" alt="" />
<img
width="50px"
:src="scope.row.icon"
v-if="scope.row.icon"
alt=""
/>
</template>
</el-table-column>
<el-table-column label="职称" align="center" width="140">
@@ -87,21 +80,14 @@
query: { id: scope.row.id }
}"
>
<el-button
type="text"
size="small"
>查看课程</el-button>
<el-button type="text" size="small">查看课程</el-button>
</router-link>
<el-button
type="text"
size="small"
@click="editHandle(scope.row)"
>修改</el-button>
<el-button
type="text"
size="small"
@click="deleteHandle(scope.row)"
>删除</el-button>
<el-button type="text" size="small" @click="editHandle(scope.row)"
>修改</el-button
>
<el-button type="text" size="small" @click="deleteHandle(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
@@ -141,9 +127,7 @@
<template #default="{ item }">
<div class="custom-item">
<span>{{ item.tel ? item.tel : item.email }}</span>
<span
style="color: gray; margin-left: 10px;"
v-if="item.name"
<span style="color: gray; margin-left: 10px;" v-if="item.name"
>({{ item.name }})</span
>
</div>
@@ -162,20 +146,41 @@
</el-select>
</el-form-item>
<el-form-item label="科室" prop="department">
<el-select v-model="addForm.department" placeholder="请选择">
<el-cascader
:options="departmentList"
:show-all-levels="false"
v-model="addForm.department"
placeholder="请选择"
:props="{
value: 'id',
label: 'title'
}"
></el-cascader>
<!-- <el-select v-model="addForm.department" placeholder="请选择">
<el-option
v-for="item in departmentList"
:key="item.value"
:label="item.label"
:value="item.label">
:key="item.id"
:label="item.title"
:value="item.id"
>
</el-option>
</el-select>
</el-select> -->
</el-form-item>
<el-form-item label="所属地域" prop="region" v-if="!changeStatus">
<div class="el-select">
<el-input v-model="addForm.region" disabled class="el-input el-input--suffix"></el-input>
<el-input
v-model="addForm.region"
disabled
class="el-input el-input--suffix"
></el-input>
</div>
<el-button size="mini" type="default" class="editBtn" @click="changeCountry">修改</el-button>
<el-button
size="mini"
type="default"
class="editBtn"
@click="changeCountry"
>修改</el-button
>
</el-form-item>
<el-form-item label="所属地域" v-if="changeStatus">
@@ -226,17 +231,30 @@
</el-form-item>
<el-form-item label="业务专长" prop="specialty">
<el-input v-model="addForm.specialty" placeholder="请输入业务专长"></el-input>
<el-input
v-model="addForm.specialty"
placeholder="请输入业务专长"
></el-input>
</el-form-item>
<el-form-item label="预约信息" prop="reservation">
<el-input v-model="addForm.reservation" placeholder="请输入预约信息"></el-input>
<el-input
v-model="addForm.reservation"
placeholder="请输入预约信息"
></el-input>
</el-form-item>
<el-form-item label="出诊信息" prop="clinic">
<el-input v-model="addForm.clinic" placeholder="请输入出诊信息"></el-input>
<el-input
v-model="addForm.clinic"
placeholder="请输入出诊信息"
></el-input>
</el-form-item>
<el-form-item label="介绍" prop="introduce">
<el-input type="textarea" v-model="addForm.introduce" placeholder="请输入介绍"></el-input>
<el-input
type="textarea"
v-model="addForm.introduce"
placeholder="请输入介绍"
></el-input>
</el-form-item>
<el-form-item label="上传头像" prop="icon">
<el-upload
@@ -281,7 +299,7 @@ export default {
userId: "",
id: "", //新增不传
name: "",
department: '',
department: "",
title: "",
specialty: "",
region: "",
@@ -290,45 +308,20 @@ export default {
clinic: "",
icon: ""
},
departmentList: [
{
value: '1',
label: '消化专科'
},
{
value: '2',
label: '呼吸专科'
},
{
value: '3',
label: '风湿免疫专科'
},
{
value: '4',
label: '肿瘤专科'
},
{
value: '5',
label: '妇科专科'
},
{
value: '6',
label: '全科医生'
}
],
departmentList: [],
editId: "",
addFormRule: {
tel: [
{
required: true,
message: "请输入手机号/邮箱",
},
message: "请输入手机号/邮箱"
}
],
name: [
{
required: true,
message: "请输入姓名",
},
message: "请输入姓名"
}
]
},
dataList: [],
@@ -340,15 +333,15 @@ export default {
dialogVisible: false,
dataListLoading: false,
addOrUpdateVisible: false,
titlesub: '',
titlesub: "",
current: 1,
limit: 10,
// 选择的值
selectedCountry: '',
selectedProvince: '',
selectedCity: '',
selectedCountry: "",
selectedProvince: "",
selectedCity: "",
// 加载状态
countryLoading: false,
@@ -367,18 +360,37 @@ export default {
saveShop: "/master/taihuTalent/bindCourseAndTalent",
hasBindProductList: "/master/taihuTalent/getCourseListForTalent",
CanBindProductList: "/master/taihuTalent/getCourseListCanTalent"
},
}
};
},
components: {
},
components: {},
activated() {
this.getDepartmentList();
this.getDataList();
this.loadCountries();
},
mounted() {
this.getDepartmentList();
},
methods: {
// 获取数据列表
getDepartmentList() {
// this.dataListLoading = true;
this.$http({
url: this.$http.adornUrl(
"/master/medicalRecords/getMedicalRecordsLabelList"
),
method: "post",
data: this.$http.adornData({})
}).then(({ data }) => {
if (data && data.code === 0) {
this.departmentList = data.Medicals;
} else {
this.departmentList = [];
}
});
},
getDataList() {
this.dataListLoading = true;
this.$http({
@@ -389,7 +401,7 @@ export default {
limit: this.pageSize,
name: this.dataForm.name,
region: this.dataForm.region
}),
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.dataList = data.pageRes.records;
@@ -428,32 +440,32 @@ export default {
//新增
addHandle() {
this.addOrUpdateVisible = true;
this.titlesub = '新增';
this.titlesub = "新增";
this.statusType = 0; //新增
this.changeStatus = true;
this.chinaStatus = false;
this.selectCode = null;
this.selectedProvId = null;
this.selectedCity = '';
this.selectedCity = "";
this.selectCode = null;
this.selectedProvId = null;
this.selectedCity = '';
this.selectedCity = "";
this.fileList = [];
this.stopLoad = false;
this.addForm = {
tel: '',
tel: "",
name: "",
title: "",
department: '',
department: "",
specialty: "",
region: "",
reservation: "",
introduce: "",
clinic: "",
icon: ""
}
};
this.$nextTick(() => {
this.$refs.addFormRef.clearValidate();
});
@@ -468,30 +480,36 @@ export default {
type: "warning"
});
return
return;
}
}
if(this.statusType==0){ //如果是新增
if (this.statusType == 0) {
//如果是新增
this.addCate();
}else if(this.statusType==1){ //如果是修改
} else if (this.statusType == 1) {
//如果是修改
this.editCate(this.addForm);
}
},
addCate() {
console.log("this.addForm at line 490:", this.addForm);
this.$refs["addFormRef"].validate(valid => {
if (valid) {
var icon = '';
var region = '';
var icon = "";
var region = "";
if (this.fileList && this.fileList.length > 0) {
icon = this.fileList[0].url
icon = this.fileList[0].url;
}
if (this.selectedCountry) {
if (!this.selectedProvince) {
region = this.selectedCountry
region = this.selectedCountry;
} else {
region = this.selectedProvince + this.selectedCity;
}
}
const department = Array.isArray(this.addForm.department)
? this.addForm.department[this.addForm.department.length - 1]
: this.addForm.department;
this.$http({
url: this.$http.adornUrl("/master/taihuTalent/addTaihuTalent"),
method: "post",
@@ -499,14 +517,14 @@ export default {
userId: this.addForm.userId,
name: this.addForm.name,
title: this.addForm.title,
department: this.addForm.department,
department: department,
specialty: this.addForm.specialty,
region: region,
reservation: this.addForm.reservation,
introduce: this.addForm.introduce,
clinic: this.addForm.clinic,
icon: icon
}),
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
@@ -519,25 +537,28 @@ export default {
}
});
}
})
});
},
editCate(data) {
console.log('data at line 524:', data)
console.log("data at line 524:", data);
this.$refs["addFormRef"].validate(valid => {
if (valid) {
var icon = '';
var region = '';
var icon = "";
var region = "";
if (this.fileList && this.fileList.length > 0) {
icon = this.fileList[0].url
icon = this.fileList[0].url;
}
if (this.selectedCountry) {
if (!this.selectedProvince) {
region = this.selectedCountry
region = this.selectedCountry;
} else {
region = this.selectedProvince + this.selectedCity;
}
}
const department = Array.isArray(data.department)
? data.department[data.department.length - 1]
: data.department;
this.$http({
url: this.$http.adornUrl("/master/taihuTalent/updateTaihuTalent"),
method: "post",
@@ -545,14 +566,14 @@ export default {
id: data.id,
name: data.name,
title: data.title,
department: data.department,
department: department,
specialty: data.specialty,
region: region ? region : data.region,
reservation: data.reservation,
introduce: data.introduce,
clinic: data.clinic,
icon: icon
}),
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
@@ -565,7 +586,7 @@ export default {
}
});
}
})
});
},
//修改地域
changeCountry() {
@@ -595,7 +616,7 @@ export default {
editHandle(data) {
this.fileList = [];
this.addOrUpdateVisible = true;
this.titlesub = '修改';
this.titlesub = "修改";
this.statusType = 1; //修改
this.changeStatus = false;
@@ -678,7 +699,7 @@ export default {
this.$http({
url: this.$http.adornUrl("/common/baseArea/getAllBaseArea"),
method: "post",
data: this.$http.adornData({}),
data: this.$http.adornData({})
}).then(({ data }) => {
if (data && data.code === 0) {
if (data.baseAreas && data.baseAreas.length > 0) {
@@ -695,7 +716,7 @@ export default {
this.$http({
url: this.$http.adornUrl("/common/province/getProvinceList"),
method: "post",
data: this.$http.adornData({}),
data: this.$http.adornData({})
}).then(({ data }) => {
if (data && data.code === 0) {
if (data.provinceList && data.provinceList.length > 0) {
@@ -708,31 +729,33 @@ export default {
//选择国家
handleCountryChange(code) {
if(code=='86'){
if (code == "86") {
this.chinaStatus = true;
} else {
this.chinaStatus = false;
}
const data = this.countries.find(country => country.code === code);
this.selectedCountry = data.title;
this.selectedProvince = '';
this.selectedCity = '';
this.selectedProvince = "";
this.selectedCity = "";
this.selectedProvId = null;
this.provinces = [];
this.cities = [];
console.log('所选国家-', this.selectedCountry)
console.log("所选国家-", this.selectedCountry);
},
//选择省份
handleProvinceChange(provId) {
this.cityLoading = true;
const data = this.provinces.find(prov => prov.provId === provId);
this.selectedProvince = data.provName;
this.selectedCity = '';
this.selectedCity = "";
this.$http({
url: this.$http.adornUrl("/common/province/getCityList?provId="+ provId),
url: this.$http.adornUrl(
"/common/province/getCityList?provId=" + provId
),
method: "post",
data: this.$http.adornData({}),
data: this.$http.adornData({})
}).then(({ data }) => {
if (data && data.code === 0) {
if (data.prov && data.prov.length > 0) {
@@ -742,15 +765,15 @@ export default {
}
});
console.log('所选省份-', this.selectedProvince)
console.log("所选省份-", this.selectedProvince);
},
//选择城市
handleCityChange(val) {
this.selectedCity = val;
console.log('所选城市-', this.selectedCity)
},
},
console.log("所选城市-", this.selectedCity);
}
}
};
</script>
@@ -824,8 +847,8 @@ export default {
.editBtn {
margin-left: 10px;
width: 70px;
border-color: #17B3A3;
color: #17B3A3;
border-color: #17b3a3;
color: #17b3a3;
}
.addFormBox {