提交 27f2508d 编写于 作者: bo.dang's avatar bo.dang

Merge branch 'dev-20210702' into 'release'

Dev 20210702, code review:bo.dang

See merge request !20
...@@ -2755,12 +2755,14 @@ ...@@ -2755,12 +2755,14 @@
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
...@@ -2775,17 +2777,20 @@ ...@@ -2775,17 +2777,20 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
...@@ -2902,7 +2907,8 @@ ...@@ -2902,7 +2907,8 @@
"inherits": { "inherits": {
"version": "2.0.4", "version": "2.0.4",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
...@@ -2914,6 +2920,7 @@ ...@@ -2914,6 +2920,7 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "^1.0.0" "number-is-nan": "^1.0.0"
} }
...@@ -2928,6 +2935,7 @@ ...@@ -2928,6 +2935,7 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
...@@ -2935,12 +2943,14 @@ ...@@ -2935,12 +2943,14 @@
"minimist": { "minimist": {
"version": "1.2.5", "version": "1.2.5",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"minipass": { "minipass": {
"version": "2.9.0", "version": "2.9.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.1.2", "safe-buffer": "^5.1.2",
"yallist": "^3.0.0" "yallist": "^3.0.0"
...@@ -2959,6 +2969,7 @@ ...@@ -2959,6 +2969,7 @@
"version": "0.5.3", "version": "0.5.3",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"minimist": "^1.2.5" "minimist": "^1.2.5"
} }
...@@ -3020,7 +3031,8 @@ ...@@ -3020,7 +3031,8 @@
"npm-normalize-package-bin": { "npm-normalize-package-bin": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"npm-packlist": { "npm-packlist": {
"version": "1.4.8", "version": "1.4.8",
...@@ -3048,7 +3060,8 @@ ...@@ -3048,7 +3060,8 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
...@@ -3060,6 +3073,7 @@ ...@@ -3060,6 +3073,7 @@
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
...@@ -3173,6 +3187,7 @@ ...@@ -3173,6 +3187,7 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
......
...@@ -57,7 +57,7 @@ export default { ...@@ -57,7 +57,7 @@ export default {
getToken() { getToken() {
let href = window.location.href; let href = window.location.href;
let offset = href.indexOf("?"); let offset = href.indexOf("?");
//localStorage.setItem('storageToken','CBC0F7B0C9D34806958B18E23C881A09') // localStorage.setItem('token','475DB3D057AD489D81FE4E4DAB747B08')
if (offset !== -1) { if (offset !== -1) {
let paramStr = href.substring(offset + 1, href.length); let paramStr = href.substring(offset + 1, href.length);
let pars = base64decode(paramStr); let pars = base64decode(paramStr);
...@@ -67,17 +67,17 @@ export default { ...@@ -67,17 +67,17 @@ export default {
isNotEmptyUtils(paramMap["ssoOrigin"]) isNotEmptyUtils(paramMap["ssoOrigin"])
) { ) {
vm.token = paramMap["token"]; vm.token = paramMap["token"];
localStorage.setItem("storageToken", vm.token); localStorage.setItem("token", vm.token);
ssoLogin(href, paramMap); ssoLogin(href, paramMap);
//vm.$router.push({ path: 'home' }) //vm.$router.push({ path: 'home' })
} else { } else {
if (!localStorage.getItem("storageToken")) { if (!localStorage.getItem("token")) {
window.location.href = getInnerLoginUrl(); // 没有token返回登录页面 window.location.href = getInnerLoginUrl(); // 没有token返回登录页面
return; return;
} }
} }
} else { } else {
if (!localStorage.getItem("storageToken")) { if (!localStorage.getItem("token")) {
window.location.href = getInnerLoginUrl(); // 没有token返回登录页面 window.location.href = getInnerLoginUrl(); // 没有token返回登录页面
return; return;
} }
......
<template>
<div>
<el-dialog
:title="title"
:visible.sync="appointmentTimeVisible" @close="cancel">
<!-- <el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">-->
<el-form ref="setForm"
:rules="addRules"
:model="model"
label-width="250px"
label-suffix=":"
label-position="right"
size="mini"
style="width: 100%;">
<el-form-item label="问诊方式" prop="diagnoseChannel">
<el-col :span="15">
<el-radio-group v-model="model.diagnoseChannel" size="small" style="line-height: 45px;width: 135%;">
<el-radio :label="1">APP问诊(系统发起问诊)</el-radio>
<el-radio :label="2">线下问诊(APP不会自动发起问诊)</el-radio>
</el-radio-group>
</el-col>
</el-form-item>
<el-form-item label="预约时间" class="required-label" prop="rangeTime">
<el-col :span="15">
<el-date-picker
v-model="rangeTime"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions1"
style="width: 135%;">
</el-date-picker>
</el-col>
</el-form-item>
</el-form>
<!-- </el-row>-->
<span slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {updateDiagnosis} from "../../utils/diagnosis";
let vm = null;
export default {
data() {
return {
show: false,
title: '设置预约时间(问诊时间)',
confirmTxt: '确定',
cancleTxt: '',
_promise: null,
model: {
diagnoseChannel: 1,
appointBeginTime: "",
appointEndTime: ""
},
rangeTime: '',
addRules: {
diagnoseChannel: [
{required: true, message: "请选择问诊方式", trigger: 'blur'}
],
rangeTime: [
{
type: 'array',
required: true,
// message: "预约时间不能为空",
trigger: 'change',
fields: {
0: {required: true, type: 'date', message: "开始时间不能为空", trigger: 'change'},
1: {required: true, type: 'date', message: '结束时间不能为空', trigger: 'change'}
}
}
],
},
pickerOptions1: {
disabledDate: time => {
return (
time.getTime() < Date.now()-1 * 24 * 3600 * 1000
); //减去一天的时间代表可以选择同一天;
}
},
}
},
props: {
appointmentTimeVisible: {
type: Boolean,
default: false
},
diagnoseLogId: {
type: Number,
default: 0
},
bizType: {
type: Number,
default: 0
},
},
created() {
vm = this;
},
methods: {
confirm() {
if(!(this.rangeTime != null && this.rangeTime.length > 0)){
vm.$message.warning("请选择预约时间");
return;
}
// this.$refs.setForm.validate((valid) => {
// if (valid) {
let req = {
id: this.diagnoseLogId,
bizType: this.bizType,
diagnoseChannel: this.model.diagnoseChannel,
appointBeginTime: this.rangeTime[0],
appointEndTime: this.rangeTime[1]
}
updateDiagnosis(req).then(function (res) {
if (res.code == "000000") {
vm.cancel();
vm.$emit('search');
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(res.message);
});
// }
// })
},
cancel() {
this.rangeTime = "";
this.$emit('update:appointmentTimeVisible', false);
}
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div>
<el-dialog
:title="title"
:visible.sync="coordinatingVisible" @close="cancel">
<!-- <el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">-->
<el-form ref="setForm"
:rules="addRules"
:model="model"
label-width="250px"
label-suffix=":"
label-position="right"
size="mini"
style="width: 100%;">
<el-form-item label="备注">
<el-col :span="15">
<el-input type="textarea" v-model="model.coordinatedRemark" style="width: 130%;" size="small" minlength="2" maxlength="500" placeholder="(选填)请输入备注信息"></el-input>
</el-col>
</el-form-item>
</el-form>
<!-- </el-row>-->
<span slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {updateDiagnosis} from "../../utils/diagnosis";
let vm = null;
export default {
props: {
coordinatingVisible: {
type: Boolean,
default: false
},
diagnoseLogId: {
type: Number,
default: 0
},
bizType: {
type: Number,
default: 0
},
},
data() {
return {
show: false,
title: '设置待协调医生',
confirmTxt: '确定',
cancleTxt: '',
_promise: null,
model:{
coordinatedRemark:""
},
addRules:{
// coordinatedRemark: [
// {required: true, message: "(选填)请输入备注信息", trigger: 'blur'}
// ]
}
}
},
created() {
vm = this;
},
mounted() {
// if(this.bizType == 8){
// this.title = "设置待协调医生";
// }
// else if(this.bizType == 10){
// this.title = "重新匹配医生";
// }
},
methods: {
confirm() {
this.$refs.setForm.validate((valid) => {
if (valid) {
let req = {
id:this.diagnoseLogId,
bizType:this.bizType,
coordinatedRemark:this.model.coordinatedRemark
}
updateDiagnosis(req).then(function (res) {
if(res.code == "000000") {
vm.cancel();
vm.$emit('search');
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(res.message);
});
}
})
},
cancel(){
this.model.coordinatedRemark = "";
this.$emit('update:coordinatingVisible', false);
}
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div>
<el-dialog
:title="title"
:visible.sync="diagnosisDoctorVisible" @close="cancel">
<!-- <el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">-->
<el-form ref="setForm"
:rules="addRules"
:model="formData"
label-width="250px"
label-suffix=":"
label-position="right"
size="mini"
style="width: 100%;">
<el-form-item label="接诊医生" class="required-label" prop="receptionId">
<!-- <el-input v-model="formData.doctorName" placeholder="请选择接诊医生" class="set-width" disabled></el-input>-->
<el-col :span="15">
<el-select @change="doctorChanged($event)" filterable v-model="formData.receptionId" placeholder="请选择接诊医生" class="set-width" style="width: 100%;">
<el-option v-for="item of doctorList" :key="item.doctorId" :label="item.doctorName" :value="item.doctorId"></el-option>
</el-select>
</el-col>
</el-form-item>
<el-form-item label="接诊医生职称" >
<el-col :span="15">
<el-input v-model="formData.doctorTitle" placeholder="请选择职称" class="set-width" disabled style="width: 100%;"></el-input>
<!-- <el-select v-model="formData.doctorTitle" placeholder="请选择职称" disabled class="set-width">
<el-option v-for="item of sexList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select> -->
</el-col>
</el-form-item>
<el-form-item label="接诊医生所在机构" >
<el-col :span="15">
<el-input v-model="formData.doctorHospital" placeholder="请选择机构" class="set-width" disabled style="width: 100%;"></el-input>
</el-col>
<!-- <el-select v-model="formData.doctorHospital" placeholder="请选择机构" disabled class="set-width">
<el-option v-for="item of sexList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select> -->
</el-form-item>
<el-form-item label="接诊医生所在科室" >
<el-col :span="15">
<el-input v-model="formData.doctorDepartment" placeholder="请选择机构" class="set-width" disabled style="width: 100%;"></el-input>
<!-- <el-select v-model="formData.doctorDepartment" placeholder="请选择科室" disabled class="set-width">
<el-option v-for="item of sexList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select> -->
</el-col>
</el-form-item>
<el-form-item label="接诊医生电话">
<el-col :span="15">
<el-input v-model="formData.doctorMobile" placeholder="请输入接诊医生手机号" disabled class="set-width" style="width: 100%;"></el-input>
</el-col>
</el-form-item>
<el-form-item v-if="formData.receptionName == '站外医生' || formData.receptionName == '云鹊医助'" label="外部医生姓名" class="required-label" prop="outsideDoctor">
<el-col :span="15">
<el-input v-model="formData.outsideDoctor" placeholder="请输入外部医生姓名" class="set-width" style="width: 135%;"></el-input>
</el-col>
</el-form-item>
<el-form-item label="接诊意向时间">
<el-col :span="15">
<el-date-picker
v-model="rangeTime"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions1"
style="width: 100%;">
</el-date-picker>
</el-col>
</el-form-item>
</el-form>
<!-- </el-row>-->
<span slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {updateDiagnosis} from "../../utils/diagnosis";
let vm = null;
export default {
props: {
diagnosisDoctorVisible: {
type: Boolean,
default: false
},
diagnoseLogId: {
type: Number,
default: 0
},
diagnoseType: {
type: Number,
default: 0
},
doctorId: {
type: Number|String,
default: 0
},
},
data() {
return {
show: false,
title: '设置接诊医生',
confirmTxt: '确定',
cancleTxt: '',
_promise: null,
formData:{
receptionId:this.doctorId,
receptionName:"",
doctorTitle:"",
doctorHospital:"",
doctorDepartment:"",
doctorMobile:"",
outsideDoctor:"",
innerFlag:1,
receptionBeginTime:"",
receptionEndTime:'',
},
doctorList:[],
rangeTime:'',
addRules:{
receptionId: [
{required: true, message: "请选择接诊医生", trigger: 'change'}
],
outsideDoctor: [
{required: true, message: "请输入外部医生姓名", trigger: 'blur'}
],
// rangeTime: [
// {
// type: 'array',
// required: true,
// trigger: 'change',
// fields: {
// 0: {required: true, type: 'date', message: "开始时间不能为空"},
// 1: {required: true, type: 'date', message: '结束时间不能为空'}
// }
// }
// ]
},
pickerOptions1: {
disabledDate: time => {
return (
time.getTime() < Date.now()-1 * 24 * 3600 * 1000
); //减去一天的时间代表可以选择同一天;
}
},
}
},
created() {
vm = this;
this.getDoctorList();
},
watch:{
doctorId:function (){
if(this.doctorId == 0 || this.doctorId == null){
this.formData.receptionId = "";
if(this.$refs.setForm) {
this.$refs.setForm.resetFields()
}
}
else {
this.formData.receptionId = this.doctorId;
this.doctorChanged(this.doctorId);
}
}
},
methods: {
confirm() {
console.log("doctorId:" + this.doctorId);
this.$refs.setForm.validate((valid) => {
if (valid) {
// if(!(this.rangeTime != null && this.rangeTime.length > 0)){
// vm.$message.warning("请选择接诊意向时间");
// return;
// }
let req = null;
if(this.formData.receptionName == "站外医生" || this.formData.receptionName == "云鹊医助"){
this.formData.innerFlag = 2;// 外部
req = {
id:this.diagnoseLogId,
bizType:9,
innerFlag:this.formData.innerFlag,
receptionId:this.formData.receptionId,
receptionName:this.formData.receptionName,
outsideDoctor:this.formData.outsideDoctor,
receptionBeginTime:this.rangeTime[0],
receptionEndTime:this.rangeTime[1],
}
}
else {
req = {
id:this.diagnoseLogId,
bizType:9,
innerFlag:this.formData.innerFlag,
receptionId:this.formData.receptionId,
receptionName:this.formData.receptionName,
receptionBeginTime:this.rangeTime[0],
receptionEndTime:this.rangeTime[1],
}
}
updateDiagnosis(req).then(function (res) {
if(res.code == "000000") {
vm.cancel();
vm.$emit('search');
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(res.message);
});
}
})
},
cancel(){
this.$emit('update:diagnosisDoctorVisible', false);
},
doctorChanged(value) {
let selected = this.doctorList.find(item => item.doctorId === value);
if (selected) {
this.formData.receptionId = value
this.formData.receptionName = selected.doctorName
this.formData.doctorTitle = selected.doctorTitle
this.formData.doctorHospital = selected.doctorHospital
this.formData.doctorDepartment = selected.doctorDepartment
this.formData.doctorMobile = selected.doctorMobile
// this.formData.serviceFee = this.priceFilter(selected.serviceFee)
}
},
getDoctorList() {
this.loading = true
let url = `/diagnose/doctorService/doctorList?diagnoseType=${this.diagnoseType}`
this.GET(url).then(res => {
this.loading = false
if (res.code == '000000') {
this.doctorList = res.data
} else {
this.$message.info('请稍后重试')
}
}).catch(() => {
this.loading = false
this.$message.info('请稍后重试')
});
},
}
}
</script>
<style lang="scss" scoped>
.set-width {
width: 300px;
}
</style>
<template>
<div>
<el-dialog
:title="title"
:visible.sync="diagnosisTimeVisible" @close="cancel">
<!-- <el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">-->
<el-form ref="setForm"
:rules="addRules"
:model="model"
label-width="250px"
label-suffix=":"
label-position="right"
size="mini"
style="width: 100%;">
<el-form-item label="助诊意向时间" class="required-label" prop="rangeTime">
<el-col :span="15">
<el-date-picker
v-model="rangeTime"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions1"
style="width: 135%;">
</el-date-picker>
</el-col>
</el-form-item>
<el-form-item label="备注">
<el-col :span="15">
<el-input type="textarea" v-model="model.triageRemark" style="width: 135%;" size="small" minlength="2"
maxlength="500" placeholder="请输入备注"></el-input>
</el-col>
</el-form-item>
</el-form>
<!-- </el-row>-->
<span slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {updateDiagnosis} from "../../utils/diagnosis";
let vm = null;
export default {
props: {
diagnosisTimeVisible: {
type: Boolean,
default: false
},
diagnoseLogId: {
type: Number,
default: 0
},
bizType: {
type: Number,
default: 0
},
},
data() {
// let checkDate = (rule, value, callback) => {
// if(!value) {
// callback(new Error("请选择助诊意向时间"));
// } else {
// callback();
// }
// }
return {
show: false,
title: '设置时间',
confirmTxt: '确定',
cancleTxt: '',
_promise: null,
model: {
triageRemark: ""
},
rangeTime: '',
addRules: {
rangeTime: [
// {type: 'array',required: true, validator: checkDate, trigger: 'blur,change'}
{
type: 'array',
required: true,
// message: "预约时间不能为空",
// validator: checkDate,
trigger: 'change',
fields: {
0: {required: true, type: 'date', message: "开始时间不能为空"},
1: {required: true, type: 'date', message: '结束时间不能为空'}
}
}
]
},
pickerOptions1: {
disabledDate: time => {
return (
time.getTime() < Date.now()-1 * 24 * 3600 * 1000
); //减去一天的时间代表可以选择同一天;
}
},
}
},
created() {
vm = this;
},
methods: {
confirm() {
// this.$refs.setForm.validate((valid) => {
// if (valid) {
if(!(this.rangeTime != null && this.rangeTime.length > 0)){
vm.$message.warning("请选择助诊意向时间");
return;
}
let req = {
id:this.diagnoseLogId,
bizType:this.bizType,
assistantBeginTime:this.rangeTime[0],
assistantEndTime:this.rangeTime[1],
triageRemark:this.model.triageRemark
}
updateDiagnosis(req).then(function (res) {
if(res.code == "000000") {
vm.cancel();
vm.$emit('search');
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(res.message);
});
// }
// })
},
cancel() {
this.rangeTime = "";
this.model.triageRemark = "";
this.$emit('update:diagnosisTimeVisible', false);
}
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div>
<el-dialog
:title="title"
:visible.sync="diagnosisVisible" @close="cancel">
<!-- <el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">-->
<el-form ref="setForm"
:rules="addRules"
:model="model"
label-width="250px"
label-suffix=":"
label-position="right"
size="mini"
style="width: 100%;">
<el-form-item label="助诊意向时间">
<el-date-picker
v-model="rangeTime"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions1">
</el-date-picker>
</el-form-item>
<el-form-item label="备注" class="required-label">
<el-col :span="15">
<el-input type="textarea" v-model="model.userName" style="width: 130%;" size="small" minlength="2" maxlength="500" placeholder="请输入原因"></el-input>
</el-col>
</el-form-item>
</el-form>
<!-- </el-row>-->
<span slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
props:[
'diagnosisVisible'
],
data() {
return {
show: false,
title: '设置预约时间(问诊时间)',
confirmTxt: '确定',
cancleTxt: '',
_promise: null,
model:{
userName:"",
title:""
},
rangeTime:'',
addRules:{
userName: [
{required: true, message: "请输入稍后跟进原因", trigger: 'blur'}
]
},
pickerOptions1: {
disabledDate: time => {
return (
time.getTime() > new Date().getTime()
); //减去一天的时间代表可以选择同一天;
}
},
}
},
created() {},
methods: {
reset() {
this.title = ''
this.confirmTxt = '确定'
this.cancleTxt = ''
this._promise = null
},
init(obj={}) {
Object.assign(this,obj)
this.show = true
return new Promise((resolve,reject) => {
this._promise = {
resolve,
reject
};
})
},
async cancle() {
this.show = false
await this._promise.reject && this._promise.reject()
this.reset()
},
async confirm() {
this.show = false
await this._promise.resolve && this._promise.resolve()
this.reset()
},
hide() {
this.show = false
this.reset()
},
cancel(){
this.$emit('update:diagnosisVisible', false);
}
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div>
<el-dialog
:title="title"
:visible.sync="followupVisible" @close="cancel">
<!-- <el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">-->
<el-form ref="setForm"
:rules="addRules"
:model="model"
label-width="250px"
label-suffix=":"
label-position="right"
size="mini"
style="width: 100%;">
<el-form-item label="稍后跟进原因" class="required-label" prop="toFollowReason">
<el-col :span="15">
<el-input type="textarea" v-model="model.toFollowReason" style="width: 130%;" size="small" minlength="2" maxlength="500" placeholder="请输入原因"></el-input>
</el-col>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {updateDiagnosis} from "../../utils/diagnosis";
let vm = null;
export default {
props: {
followupVisible: {
type: Boolean,
default: false
},
diagnoseLogId: {
type: Number,
default: 0
}
},
data() {
return {
show: false,
title: '设为稍后跟进',
confirmTxt: '确定',
cancleTxt: '',
_promise: null,
model:{
toFollowReason:""
},
addRules:{
toFollowReason: [
{required: true, message: "请输入稍后跟进原因", trigger: 'blur'}
]
}
}
},
created() {
vm = this;
},
methods: {
confirm() {
this.$refs.setForm.validate((valid) => {
if (valid) {
let req = {
id:this.diagnoseLogId,
bizType:4,
toFollowReason:this.model.toFollowReason
}
updateDiagnosis(req).then(function (res) {
if(res.code == "000000") {
vm.cancel();
vm.$emit('search');
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(res.message);
});
}
})
},
cancel(){
this.model.toFollowReason = "";
this.$emit('update:followupVisible', false);
}
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div class="info-pad-container">
<div class="title">{{option.title}}</div>
<div class="item" v-for="item in option.contentList" :key="item.key">
<div class="key">{{item.key}}</div><div class="dot">{{option.isShowDot ? ':' : ''}}</div>
<div class="value">{{item.value}}</div>
</div>
</div>
</template>
<script>
export default {
/**
* option: {
* isShowDot: false, -->是否展示:,默认false
* title: '标题', --> 标题
* contentList: [{
* key: '用户名',
* value: '小赵'
* }]
* }
*/
props: {
option: {
type: Object,
required: true
}
},
data() {
return {
}
},
created() {},
methods: {
}
}
</script>
<style lang="scss" scoped>
.info-pad-container {
background: #fff;
margin: 20px;
padding: 20px;
.title {
font-weight: bold;
margin: 5px 0;
padding: 5px;
}
.item {
// width: 100%;
margin: 5px 0;
display: flex;
justify-content: flex-start;
align-items: top;
.key {
padding: 5px;
line-height: 20px;
}
.dot {
line-height: 30px;
}
.value {
padding: 5px;
line-height: 20px;
flex: 1;
word-break: break-all;
}
}
}
</style>
<template>
<div>
<el-dialog
:title="title"
:visible.sync="matchVisible" @close="cancel">
<!-- <el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">-->
<el-form ref="setForm"
:rules="addRules"
:model="model"
label-width="250px"
label-suffix=":"
label-position="right"
size="mini"
style="width: 100%;">
<el-form-item label="运营名称" class="required-label" prop="operatorId">
<el-col :span="15">
<el-select
v-model="model.operatorId"
placeholder="请选择运营名称"
filterable
clearable
@change="changeOperator"
style="width:110%;height: 32px;line-height: 32px;"
>
<el-option
v-for="item in adminList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-col>
</el-form-item>
</el-form>
<!-- </el-row>-->
<span slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { updateDiagnosis,batchSetOperator } from '../../utils/diagnosis';
let vm = null;
export default {
props: {
matchVisible:{
type: Boolean,
default: false
},
diagnoseLogId: {
type: Number,
default: 0
},
multipleSelection: {
type: Array,
default: [],
},
batchFlag:{
type: Boolean,
default: false
},
operateUserID: {
type: String|Number,
default: ""
},
},
data() {
return {
show: false,
title: '匹配运营',
confirmTxt: '确定',
cancleTxt: '',
_promise: null,
model:{
operatorName:"",
operatorId:""
},
adminList:'',
addRules:{
operatorId: [
{required: true, message: "请选择运营人员", trigger: 'change'}
]
}
}
},
created() {
vm = this;
this.getAdminList();
if(this.batchFlag){
this.title = "批量设置运营";
}
},
watch:{
operateUserID:function (){
if(!this.batchFlag){
if(this.operateUserID == 0 || this.operateUserID == null){
this.model.operatorId = "";
if(this.$refs.setForm) {
this.$refs.setForm.resetFields()
}
}
else {
this.model.operatorId = this.operateUserID;
this.changeOperator(this.operateUserID);
}
}
}
},
methods: {
confirm() {
this.$refs.setForm.validate((valid) => {
if (valid) {
// 单个设置运营
if (!this.batchFlag) {
let req = {
id: this.diagnoseLogId,
bizType: 1,
operatorId: this.model.operatorId,
operatorName: this.model.operatorName
}
updateDiagnosis(req).then(function (res) {
if (res.code == "000000") {
vm.cancel();
vm.$emit('search');
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(error);
});
}
// 批量设置运营
else {
let ids = [];
if (this.multipleSelection.length > 0) {
for (let i = 0; i < this.multipleSelection.length; i++) {
ids.push(this.multipleSelection[i].diagnoseLogId);
}
}
let req = {
ids: ids,
operatorId: this.model.operatorId,
operatorName: this.model.operatorName
}
batchSetOperator(req).then(function (res) {
if (res.code == "000000") {
vm.cancel();
vm.$emit('search');
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(error);
});
}
}
})
},
cancel(){
this.model.operatorId = "";
this.$emit('update:matchVisible', false);
},
getAdminList(){
let url = `/diagnose/admin/diagnose/operator/query`
let params = {
"token":localStorage.getItem("token")
};
this.loading = true;
this.GET(url, null).then(res => {
this.loading = false
if (res.code == "000000") {
this.adminList = res.data;
}
});
},
changeOperator(data){
for (let i=0;i < this.adminList.length; i++){
if(data == this.adminList[i].id){
this.model.operatorName = this.adminList[i].name;
break;
}
}
}
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div>
<el-dialog
:title="title"
:visible.sync="doctorVisible" @close="cancel">
<!-- <el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">-->
<el-form ref="setForm"
:rules="addRules"
:model="model"
label-width="250px"
label-suffix=":"
label-position="right"
size="mini"
style="width: 100%;">
<el-form-item label="分诊科室" class="required-label" prop="triageDepartmentId">
<el-select
v-model="model.triageDepartmentId"
placeholder="请选择分诊科室"
clearable
filterable
style="width:56%;height: 32px;line-height: 32px;"
@change="change"
>
<el-option
v-for="item in depList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="备注">
<el-col :span="15">
<el-input type="textarea" v-model="model.triageRemark" style="width: 90%;" size="small" minlength="2"
maxlength="500" placeholder="请输入备注"></el-input>
</el-col>
</el-form-item>
</el-form>
<!-- </el-row>-->
<span slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {updateDiagnosis, getDepList} from "../../utils/diagnosis";
let vm = null;
export default {
props: {
doctorVisible: {
type: Boolean,
default: false
},
diagnoseLogId: {
type: Number,
default: 0
},
bizType: {
type: Number,
default: 0
},
triageDepartmentId: {
type: Number|String,
default: 0
},
},
data() {
return {
show: false,
title: '设置分诊科室',
confirmTxt: '确定',
cancleTxt: '',
_promise: null,
depList: [],
model: {
triageRemark: "",
triageDepartmentId: "",
triageDepartment:""
},
addRules: {
triageDepartmentId: [
{required: true, message: "请选择分诊科室", trigger: 'change'}
],
}
}
},
created() {
vm = this;
this.getDepList();
},
watch:{
triageDepartmentId:function (){
if(this.triageDepartmentId == 0 || this.triageDepartmentId == null){
this.model.triageDepartmentId = "";
if(this.$refs.setForm) {
this.$refs.setForm.resetFields()
}
}
else {
this.model.triageDepartmentId = this.triageDepartmentId;
this.change(this.triageDepartmentId);
}
}
},
methods: {
getDepList() {
getDepList().then(function (res) {
if (res.code == "000000") {
vm.depList = res.data;
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(res.message);
});
},
confirm() {
this.$refs.setForm.validate((valid) => {
if (valid) {
let req = {
id: this.diagnoseLogId,
bizType: this.bizType,
triageDepartmentId:this.model.triageDepartmentId,
triageDepartment:this.model.triageDepartment,
triageRemark: this.model.triageRemark
}
updateDiagnosis(req).then(function (res) {
if (res.code == "000000") {
vm.cancel();
vm.$emit('search');
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(res.message);
});
}
})
},
cancel() {
this.triageDepartmentId = null;
this.model.triageDepartmentId = "";
this.model.triageRemark = "";
this.$emit('update:doctorVisible', false);
// this.doctorVisible = false;
},
change(data){
for (let i=0;i < this.depList.length; i++){
if(data == this.depList[i].id){
this.model.triageDepartment = this.depList[i].name;
break;
}
}
}
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div>
<el-dialog
:title="title"
:visible.sync="refundVisible" @close="cancel">
<!-- <el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">-->
<el-form ref="setForm"
:rules="addRules"
:model="model"
label-width="250px"
label-suffix=":"
label-position="right"
size="mini"
style="width: 100%;">
<div style="margin-bottom: 20px;margin-top: -20px;text-align: center;"><span style="color: #ff0000;">温馨提示:订单一旦退款,订单关联的预约单将被同步取消,请谨慎操作退款</span></div>
<el-form-item label="退款原因" class="required-label" prop="refundReason">
<el-col :span="15">
<el-input type="textarea" v-model="model.refundReason" style="width: 130%;" size="small" placeholder="请输入原因"></el-input>
</el-col>
</el-form-item>
</el-form>
<!-- </el-row>-->
<span slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { updateDiagnosis } from '../../utils/diagnosis';
let vm = null;
export default {
props: {
refundVisible:{
type: Boolean,
default: false
},
diagnoseLogId: {
type: Number,
default: 0
}
},
data() {
return {
show: false,
title: '取消/退款',
confirmTxt: '确定',
cancleTxt: '',
_promise: null,
model:{
refundReason:""
},
addRules:{
refundReason: [
{required: true, message: "请输入退款原因", trigger: 'blur'}
]
}
}
},
created() {
vm = this;
},
methods: {
confirm() {
this.$refs.setForm.validate((valid) => {
if (valid) {
let req = {
id: this.diagnoseLogId,
bizType: 2,
refundReason: this.model.refundReason
}
updateDiagnosis(req).then(function (res) {
if (res.code == "000000") {
vm.cancel();
vm.$emit('search');
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(res.message);
});
}
})
},
cancel(){
this.model.refundReason = "";
this.$emit('update:refundVisible', false);
},
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div>
<el-dialog
:title="title"
:visible.sync="rematchingVisible" @close="cancel">
<!-- <el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">-->
<el-form ref="setForm"
:rules="addRules"
:model="model"
label-width="250px"
label-suffix=":"
label-position="right"
size="mini"
style="width: 100%;">
<el-form-item label="备注" class="required-label" prop="repatternRemark">
<el-col :span="15">
<el-input type="textarea" v-model="model.repatternRemark" style="width: 135%;" size="small" minlength="2" maxlength="500" placeholder="请输入备注信息"></el-input>
</el-col>
</el-form-item>
</el-form>
<!-- </el-row>-->
<span slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {updateDiagnosis} from "../../utils/diagnosis";
let vm = null;
export default {
props: {
rematchingVisible: {
type: Boolean,
default: false
},
diagnoseLogId: {
type: Number,
default: 0
},
bizType: {
type: Number,
default: 0
},
},
data() {
return {
show: false,
title: '重新匹配医生',
confirmTxt: '确定',
cancleTxt: '',
_promise: null,
model:{
repatternRemark:""
},
addRules:{
repatternRemark: [
{required: true, message: "请输入备注信息", trigger: 'blur'}
]
}
}
},
created() {
vm = this;
},
methods: {
confirm() {
this.$refs.setForm.validate((valid) => {
if (valid) {
let req = {
id:this.diagnoseLogId,
bizType:10,
repatternRemark:this.model.repatternRemark
}
updateDiagnosis(req).then(function (res) {
if(res.code == "000000") {
vm.cancel();
vm.$emit('search');
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(res.message);
});
}
})
},
cancel(){
this.model.repatternRemark = "";
this.$emit('update:rematchingVisible', false);
}
}
}
</script>
<style lang="scss" scoped>
</style>
...@@ -42,7 +42,7 @@ export default { ...@@ -42,7 +42,7 @@ export default {
imgArr: [ imgArr: [
], ],
headers: { headers: {
token: localStorage.getItem("storageToken"), token: localStorage.getItem("token"),
}, },
actionurl: "#", actionurl: "#",
accept: '.png,.jpeg' accept: '.png,.jpeg'
......
...@@ -50,7 +50,7 @@ export default { ...@@ -50,7 +50,7 @@ export default {
musicArr: [], musicArr: [],
actionUrl: '', actionUrl: '',
headers: { headers: {
token: localStorage.getItem("storageToken"), token: localStorage.getItem("token"),
}, },
loading: false, loading: false,
accept: '.mp3,.mpeg' accept: '.mp3,.mpeg'
......
<template>
<div class="table">
<el-table
v-loading="loading"
class="search-table"
:data="tData"
:height="tableHeight"
style="width: 100%"
border
@selection-change="handleSelectionChange"
>
<el-table-column
fixed
type="selection"
width="55">
</el-table-column>
<el-table-column
v-for="item in tableColumn"
:key="item.prop"
:prop="item.prop"
:label="item.label"
:show-overflow-tooltip="item.showtooltip"
min-width="170"
align="center">
<template slot-scope="scope">
<div v-if="scope.column.property == 'appointBeginTime'">
<p>{{scope.row.appointBeginTime}}</p>
<p>{{scope.row.appointEndTime}}</p>
</div>
<div v-else-if="scope.column.property == 'assistantBeginTime'">
<p>{{scope.row.assistantBeginTime}}</p>
<p>{{scope.row.assistantEndTime}}</p>
</div>
<div v-else-if="scope.column.property == 'receptionBeginTime'">
<p>{{scope.row.receptionBeginTime}}</p>
<p>{{scope.row.receptionEndTime}}</p>
</div>
<div v-else><p>{{scope.row[scope.column.property]}}</p></div>
</template>
</el-table-column>
<el-table-column
label="操作"
fixed="right"
align="center"
min-width="400"
>
<template slot-scope="scope">
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,25)" @click="witeDiagnose(scope.row)">设为待问诊</el-button>
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,21,22,23,24,25,26,3,2) && menuType ==1 " @click="changeRun(scope.row)">更换运营</el-button>
<el-button type="primary" size="small" class="btn" @click="goDetail(scope.row,false)">查看详情</el-button>
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,2,21,22,23,24,25,26,3) && menuType ==1 " @click="cancelRefund(scope.row)">取消/退款</el-button>
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,21)" @click="witeGo(scope.row)">设为稍后跟进</el-button>
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,22,21)" @click="waitMatchDot(scope.row)">设为待匹配医生</el-button>
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,3,4,5,6,21,22,23,24,25,26)" @click="sendMessage(scope.row)">发送消息</el-button>
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,3,26)" @click="joinDiagnose(scope.row)">加入问诊</el-button>
<!-- <el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,2)" @click="matchRun(scope.row)">匹配运营</el-button>-->
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,2,3,4,6,21,22,23,24,25,26,5,6)" @click="goDetail(scope.row,true)" >编辑</el-button>
<!-- <el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,21)" @click="waitDiagnose(scope.row)">设为待分诊</el-button>-->
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,23)" @click="waitHzeDot(scope.row)">设为待协调医生</el-button>
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,23,24)" @click="waitMatchTime(scope.row)">设为待确认时间</el-button>
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,3,25,26)" @click="reMatchDot(scope.row)">重新匹配医生</el-button>
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,3,26)" @click="changeTime(scope.row)">修改时间</el-button>
<!-- <el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,26)" @click="call(scope.row)">发起问诊</el-button>-->
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,3)" @click="doneHandle(scope.row)">设为已完成</el-button>
<el-button type="primary" size="small" class="btn" v-if="showBtn(scope.row,2)" @click="setOffice(scope.row)">设置科室</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<div class="pagination">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pageNo"
:page-sizes="[15, 30, 50, 100]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows"
>
</el-pagination>
</div>
</div>
</template>
<script>
import { TABLE_COLUMN } from "@/utils/constants";
//0 只填写了患者信息(急速问诊才会有的状态),1 初始状态(未支付),2待问诊(待匹配运营)(支付成功待完善)3 问诊中(已完善),4、已问诊 5、取消, 6 已结算
//21 已匹配, 22 待分诊, 23 待匹配接诊医生, 24 待协调医生 25 待设置问诊时间, 26 待问诊
export default {
props: {
menuType: {
type: Number,
default: 1,
},
tData: {
type: Array,
default: [],
},
pageNo: {
type: Number,
default: 1,
},
pageSize: {
type: Number,
default: 20,
},
totalRows: {
type: Number,
default: 0,
},
loading: {
type: Boolean,
default: false,
},
tableHeight: {
type: Number,
default: 500,
},
multipleSelection: {
type: Array,
default: [],
},
},
data() {
return {
tableColumn: TABLE_COLUMN
};
},
mounted() {
},
methods: {
showBtn(row,...arr) {
return arr.includes(row.status)
// return true;
},
// 选择
handleSelectionChange(val) {
this.multipleSelection = val;
this.$emit("update:multipleSelection", this.multipleSelection);
},
//设为待问诊
witeDiagnose(row) {
this.$emit("witeDiagnose", row);
},
//更换运营
changeRun(row) {
this.$emit("changeRun", row);
},
// 查看详情 \编辑
goDetail(row, flag) {
this.$emit("goDetail", row, flag);
},
//取消/退款
cancelRefund(row) {
this.$emit("cancelRefund", row);
},
//设为稍后跟进
witeGo(row) {
this.$emit("witeGo", row);
},
//设为待匹配医生
waitMatchDot(row) {
this.$emit("waitMatchDot", row);
},
//发送消息
sendMessage(row) {
this.$emit("sendMessage", row);
},
//加入问诊
joinDiagnose(row) {
this.$emit("joinDiagnose", row);
},
//匹配运营
// matchRun(row) {
// this.$emit("matchRun", row);
// },
//设为待分诊
// waitDiagnose(row) {
// this.$emit("waitDiagnose", row);
// },
//设为待协调医生
waitHzeDot(row) {
this.$emit("waitHzeDot", row);
},
//设为待确认时间
waitMatchTime(row) {
this.$emit("waitMatchTime", row);
},
//重新匹配医生
reMatchDot(row) {
this.$emit("reMatchDot", row);
},
//修改时间
changeTime(row) {
this.$emit("changeTime", row);
},
//发起问诊
// call(row) {
// this.$emit("call", row);
// },
//设为已完成
doneHandle(row) {
this.$emit("doneHandle", row);
},
goEdite(row) {
this.$emit("goEdite", row);
},
handleSizeChange(value) {
this.$emit("handleSizeChange", value);
},
handleCurrentChange(value) {
this.$emit("handleCurrentChange", value);
},
setOffice(value) {
this.$emit("setOffice", value);
},
},
};
</script>
<style scoped>
.btn {
margin-top: 5px;
}
</style>
...@@ -7,11 +7,13 @@ const diagnosisLive = r => require.ensure([], () => r(require('../views/IM/diagn ...@@ -7,11 +7,13 @@ const diagnosisLive = r => require.ensure([], () => r(require('../views/IM/diagn
const serviceList = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/service-list.vue')), 'serviceList') const serviceList = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/service-list.vue')), 'serviceList')
const assistList = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/assist-list.vue')), 'assistList') const assistList = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/assist-list.vue')), 'assistList')
const diagnosisEditor = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-editor.vue')), 'diagnosisEditor') const diagnosisEditor = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-editor.vue')), 'diagnosisEditor')
const diagnosisListLod = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-list-old.vue')), 'diagnosisListLod') const diagnosisListNew = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-list-new.vue')), 'diagnosisListNew')
const downList = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/down-list.vue')), 'downList')
export default [{ export default [{
path: '/', path: '/',
component: App, component: App,
mode: 'history',
children: [ children: [
{ {
path: '', path: '',
...@@ -38,8 +40,11 @@ export default [{ ...@@ -38,8 +40,11 @@ export default [{
path: '/diagnosis-editor', path: '/diagnosis-editor',
component: diagnosisEditor component: diagnosisEditor
}, { }, {
path: '/diagnosis-list-old', path: '/diagnosis-list-new',
component: diagnosisListLod component: diagnosisListNew
}, {
path: '/down-list',
component: downList
} }
] ]
}] }]
...@@ -88,6 +88,34 @@ export const STATUS_LIST = [ ...@@ -88,6 +88,34 @@ export const STATUS_LIST = [
{ {
label: '已取消', label: '已取消',
value: 5 value: 5
},
{
label: '已结算',
value: 6
},
{
label: '已匹配',
value: 21
},
{
label: '待分诊',
value: 22
},
{
label: '待匹配医生',
value: 23
},
{
label: '待协调医生',
value: 24
},
{
label: '待确认时间',
value: 25
},
{
label: '待问诊',
value: 26
} }
] ]
...@@ -227,3 +255,347 @@ export const FOLLW_LIST = [ ...@@ -227,3 +255,347 @@ export const FOLLW_LIST = [
value: 4 value: 4
}, },
] ]
//0 只填写了患者信息(急速问诊才会有的状态),1 初始状态(未支付),2待问诊(支付成功待完善)3 问诊中(已完善),4、已问诊 5、取消, 6 已结算
//21 已匹配 22 待分诊 23 待匹配接诊医生 24 待协调医生 25 待设置问诊时间 26 待问诊
//预约单列表
export const ALL_TAB_LIST = [
{
label: '全部',
active: '99'
},
{
label: '待匹配',
active: '2'
},
{
label: '已匹配',
active: '21'
},
{
label: '待分诊',
active: '22'
},
{
label: '待匹配医生',
active: '23'
},
{
label: '待协调医生',
active: '24'
},
{
label: '待确认时间',
active: '25'
},
{
label: '待问诊',
active: '26'
},
{
label: '问诊中',
active: '3'
},
{
label: '已完成',
active: '4'
},
{
label: '已结算',
active: '6'
},
{
label: '已取消',
active: '5'
}
]
//运营预约单列表
export const RUN_TAB_LIST = [
{
label: '全部',
active: '99'
},
{
label: '待匹配',
active: '2'
},
{
label: '已匹配',
active: '21'
},
{
label: '待确认时间',
active: '25'
},
{
label: '待问诊',
active: '26'
},
{
label: '问诊中',
active: '3'
},
{
label: '已完成',
active: '4'
},
{
label: '已取消',
active: '5'
}
]
// 分诊列表
export const TRIAGE_TAB_LIST = [
{
label: '全部',
active: '99'
},
{
label: '待分诊',
active: '22'
}
]
// 接诊列表
export const RECEPTION_TAB_LIST = [
{
label: '全部',
active: '99'
},
{
label: '待匹配医生',
active: '23'
},
{
label: '待协调医生',
active: '24'
},
{
label: '待确认时间',
active: '25'
},
]
// 外呼列表
export const MATCH_TAB_LIST = [
{
label: '全部',
active: '99'
},
{
label: '已匹配',
active: '21'
}
]
export const TABLE_COLUMN = [
{
prop: "diagnoseLogId",
label: "ID",
showtooltip: false,
},
{
prop: "orderNo",
label: "订单ID",
showtooltip: false,
},
{
prop: "diagnoseTypeStr",
label: "预约类型",
showtooltip: false,
},
{
prop: "statusStr",
label: "状态",
showtooltip: false,
},
{
prop: "appointBeginTime",
label: "预约时间",
showtooltip: false,
},
{
prop: "operateUserId",
label: "运营人员ID",
showtooltip: false,
},
{
prop: "operateUserName",
label: "运营人员",
showtooltip: false,
},
{
prop: "userName",
label: "助诊医生",
showtooltip: false,
},
{
prop: "userMobile",
label: "助诊电话",
showtooltip: false,
},
{
prop: "assistantBeginTime",
label: "助诊医生意向时间",
showtooltip: false,
},
{
prop: "assistantRemark",
label: "助诊备注",
showtooltip: true,
},
{
prop: "triageDepartment",
label: "分诊科室",
showtooltip: false,
},
{
prop: "triageRemark",
label: "分诊备注",
showtooltip: true,
},
{
prop: "doctorName",
label: "接诊医生",
showtooltip: false,
},
{
prop: "doctorMobile",
label: "接诊电话",
showtooltip: false,
},
{
prop: "outsideDoctor",
label: "站外医生姓名",
showtooltip: false,
},
{
prop: "receptionBeginTime",
label: "接诊诊医生意向时间",
showtooltip: false,
},
{
prop: "patientName",
label: "患者姓名",
showtooltip: false,
},
{
prop: "patientMobilePhone",
label: "患者电话",
showtooltip: false,
},
{
prop: "illnessDetail",
label: "病情描述",
showtooltip: true,
},
{
prop: "idCard",
label: "证件号",
showtooltip: false,
},
{
prop: "sexStr",
label: "性别",
showtooltip: false,
},
{
prop: "diagnoseStageStr",
label: "初/复诊",
showtooltip: false,
},
{
prop: "determineFlagStr",
label: "是否确诊",
showtooltip: false,
},
{
prop: "diagnoseDisease",
label: "确诊疾病",
showtooltip: true,
},
{
prop: "triageOperatorName",
label: "分诊运营",
showtooltip: false,
},
{
prop: "receptionOperatorName",
label: "接诊运营",
showtooltip: false,
},
{
prop: "diagnoseAdvice",
label: '诊断建议',
showtooltip: true,
},
{
prop: "crrsName",
label: "招募人",
showtooltip: false,
},
{
prop: "diagnoseChannelStr",
label: "问诊方式",
showtooltip: false,
},
{
prop: "doneTime",
label: "完成时间",
showtooltip: false,
},
{
prop: "cancelTime",
label: "退款时间",
showtooltip: false,
},
{
prop: "createdTime",
label: "创建时间",
showtooltip: false,
},
{
prop: "followFlagStr",
label: "是否跟进",
showtooltip: false,
},
{
prop: "drugFollowStatusStr",
label: "药品跟进状态",
showtooltip: false,
},
{
prop: "drugFollow",
label: "药品跟进",
showtooltip: false,
},
{
prop: "checkFollowStatusStr",
label: "检查跟进状态",
showtooltip: false,
},
{
prop: "checkFollow",
label: "检查跟进",
showtooltip: false,
},
{
prop: "otherFollowStatusStr",
label: "其他跟进事项状态",
showtooltip: false,
},
{
prop: "otherFollow",
label: "其他跟进事项",
showtooltip: false,
},
{
prop: "remark",
label: "跟进备注",
showtooltip: true,
},
]
import fetch from '../fetch';
import { getBaseUrl } from '@/utils/index'
let headers = {
'Content-Type': 'application/json;charset=UTF-8',
token: localStorage.getItem('token'),
};
/*保存问诊相关信息*/
export const updateDiagnosis = (params) => {
return fetch({
headers,
url: getBaseUrl(`/diagnose/admin/diagnose/model/save`),
method: 'post',
data: params,
description: '保存问诊相关信息',
})
};
/*批量设置运营*/
export const batchSetOperator = (params) => {
return fetch({
headers,
url: getBaseUrl(`/diagnose/admin/diagnose/batch/operator`),
method: 'post',
data: params,
description: '批量设置运营',
})
};
/*科室*/
export const getDepList = () => {
return fetch({
headers,
url: getBaseUrl(`/hospital/departments/0`),
method: 'get',
description: '获得科室',
})
};
...@@ -13,7 +13,7 @@ const service = axios.create({ ...@@ -13,7 +13,7 @@ const service = axios.create({
// request拦截器 // request拦截器
service.interceptors.request.use(config => { service.interceptors.request.use(config => {
config.headers['sysCode'] = 26 config.headers['sysCode'] = 26
config.headers['token'] = localStorage.getItem('storageToken') config.headers['token'] = localStorage.getItem('token')
config.headers['deviceInfo'] = JSON.stringify({ "app_channel": "", "app_mac": "", "app_uuid": "", "app_version": "", "device_brand": "", "device_ip": "", "device_model": "", "device_net": "", "device_ops": "", "resolution_wh": "", "system_level": "", "device_type": '10' }) config.headers['deviceInfo'] = JSON.stringify({ "app_channel": "", "app_mac": "", "app_uuid": "", "app_version": "", "device_brand": "", "device_ip": "", "device_model": "", "device_net": "", "device_ops": "", "resolution_wh": "", "system_level": "", "device_type": '10' })
Object.assign(config.headers, config.changeHeader) Object.assign(config.headers, config.changeHeader)
if (config.fileHeader) { if (config.fileHeader) {
......
此差异已折叠。
...@@ -110,13 +110,11 @@ export default { ...@@ -110,13 +110,11 @@ export default {
}) })
.then(() => { .then(() => {
closeLoading(this) closeLoading(this)
this.$router.push({path: '/diagnosis-list', query: {liveBack: true}}) this.$router.go(-1)
//this.$router.go(-1)
}) })
.catch((err) => { .catch((err) => {
closeLoading(this) closeLoading(this)
this.$router.push({path: '/diagnosis-list', query: {liveBack: true}}) this.$router.go(-1)
//this.$router.go(-1)
}) })
}) })
} }
...@@ -377,8 +375,7 @@ export default { ...@@ -377,8 +375,7 @@ export default {
leave() { leave() {
this.rtc.leave() this.rtc.leave()
this.clearSession() this.clearSession()
this.$router.push({path: '/diagnosis-list', query: {liveBack: true}}) this.$router.go(-1)
//this.$router.go(-1)
}, },
// 结束会话 // 结束会话
overFn() { overFn() {
...@@ -430,12 +427,10 @@ export default { ...@@ -430,12 +427,10 @@ export default {
title: `获取信息失败,请稍后重试` title: `获取信息失败,请稍后重试`
}) })
.then(() => { .then(() => {
this.$router.push({path: '/diagnosis-list', query: {liveBack: true}}) this.$router.go(-1)
//this.$router.go(-1)
}) })
.catch((err) => { .catch((err) => {
this.$router.push({path: '/diagnosis-list', query: {liveBack: true}}) this.$router.go(-1)
//this.$router.go(-1)
}) })
}) })
}, },
......
<template>
<div class="down-list">
<el-table
class="search-table"
:data="tableData"
style="width: 100%"
v-loading="loading"
>
<el-table-column key="fileName" prop="fileName" label="名称" min-width="170" align="center" ></el-table-column>
<el-table-column key="createdTime" prop="createdTime" label="创建时间" min-width="170" align="center" ></el-table-column>
<el-table-column key="status" prop="status" label="状态" min-width="170" align="center" >
<template slot-scope="scope">
<div class="status_base"><div :class="'status-circle status-' + scope.row.status"></div><div>{{ getStatusDesc(scope.row.status) }}</div></div>
</template>
</el-table-column>
<el-table-column
label="操作"
fixed="right"
align="center"
min-width="400"
>
<template slot-scope="scope">
<div
@click="download(scope.row.path)"
class="download-btn"
>下载</div>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<div class="pagination">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pageNo"
:page-sizes="[15, 30, 50, 100, 200]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalCount"
>
</el-pagination>
</div>
</div>
</template>
<script>
const STATUS_DESC_MAP = {
1: '处理中',
2: '完成',
3: '失败'
}
export default {
data() {
return {
pageSize: 15,
pageNo: 1,
totalCount: 0,
loading: false,
tableData: [],
}
},
created () {
this.queryList()
},
methods: {
queryList () {
this.POST(`/diagnose/admin/diagnose/export/list`, {
pageSize: this.pageSize,
pageNo: this.pageNo
}).then(res => {
if (res && res.code === '000000') {
this.totalCount = res.data.allSize
this.tableData = res.data.list
}
})
},
getStatusDesc (status) {
return STATUS_DESC_MAP[status]
},
download(link) {
window.location.href = link
},
handleSizeChange(value) {
this.pageNo = 1
this.pageSize = value
this.queryList()
},
handleCurrentChange(value) {
this.pageNo = value
this.queryList()
},
},
};
</script>
<style lang="less" scoped>
.down-list {
margin: 15px;
.status_base {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
.status-circle {
content: '';
display: block;
width: 8px;
height: 8px;
border-radius: 4px;
margin-right: 5px;
}
.status-1 {
background-color: rgb(219, 223, 12);;
}
.status-2 {
background-color: rgb(87, 238, 82);;
}
.status-3 {
background-color: rgb(238, 68, 16);;
}
}
.download-btn {
color: rgb(7, 180, 59);
cursor: pointer;
}
.download-btn:hover {
color: rgb(98, 233, 86);
}
}
</style>
\ No newline at end of file
<template>
<div class="refund-container">
<refund-detail :option="applyOption" />
<refund-detail :option="payOption" />
<refund-detail :option="checkOption" />
<refund-detail :option="detailOption" />
</div>
</template>
<script>
import refundDetail from '@/components/common/info-pad';
let vm = null;
export default {
components: {
refundDetail
},
data(){
return {
applyOption: {
title: '退款申请信息',
isShowDot: true,
contentList: [{
key: '退款编号',
value: '12345667788899900-0098765'
}, {
key: '订单编号',
value: '12345667788899900-0098765'
}, {
key: '申请时间',
value: '2020-09-09 12:00:00'
}, {
key: '商品名称',
value: '语音问诊'
}, {
key: '退款金额',
value: '语音问诊'
}, {
key: '申请人',
value: '语音问诊'
}, {
key: '退款原因',
value: '语音问诊xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
}, {
key: '退款说明',
value: '语音问诊'
}]
},
payOption: {
title: '支付信息',
isShowDot: true,
contentList: [{
key: '支付方式',
value: '微信支付'
}, {
key: '订单金额',
value: '¥9.90'
}, {
key: '支付时间',
value: '2021-01-01 12:00:00'
}]
},
checkOption: {
title: '退款审核',
isShowDot: true,
contentList: [{
key: '退款状态',
value: '已完成'
}, {
key: '备注信息',
value: 'xxxxxxx'
}, {
key: '退款时间',
value: '2020-01-01 12:00:00'
}]
},
detailOption: {
title: '退款详情',
isShowDot: true,
contentList: [{
key: '支付方式',
value: '微信支付'
}, {
key: '退款金额',
value: '¥9.90'
}, {
key: '完成时间',
value: '2020-01-01 10:00:00'
}]
}
}
},
mounted() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.refund-container {
}
</style>
...@@ -68,11 +68,11 @@ export default { ...@@ -68,11 +68,11 @@ export default {
if (command === "logout") { if (command === "logout") {
window.location.href = getInnerLoginUrl() window.location.href = getInnerLoginUrl()
// let req = { // let req = {
// token: localStorage.getItem("storageToken") // token: localStorage.getItem("token")
// }; // };
// vm.POST("/contents/login/log_out", req).then(res => { // vm.POST("/contents/login/log_out", req).then(res => {
// sessionStorage.removeItem("ADMIN_IM_CENTER_NAVS"); // sessionStorage.removeItem("ADMIN_IM_CENTER_NAVS");
// localStorage.removeItem("storageToken"); // localStorage.removeItem("token");
// window.location.href = getInnerLoginUrl(); // window.location.href = getInnerLoginUrl();
// //logout() // //logout()
// }); // });
...@@ -104,7 +104,7 @@ export default { ...@@ -104,7 +104,7 @@ export default {
} }
let param = let param =
"token=" + "token=" +
localStorage.getItem("storageToken") + localStorage.getItem("token") +
"&ssoOrigin=" + "&ssoOrigin=" +
localStorage.getItem("ssoOrigin") + localStorage.getItem("ssoOrigin") +
"&system_type=" + "&system_type=" +
......
...@@ -113,7 +113,7 @@ export default { ...@@ -113,7 +113,7 @@ export default {
} }
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss">
.slidebar-container { .slidebar-container {
display: block; display: block;
position: absolute; position: absolute;
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册