提交 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) {
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
<el-input v-model="formData.crrsName" placeholder="请输入招募人" disabled class="set-width"></el-input> <el-input v-model="formData.crrsName" placeholder="请输入招募人" disabled class="set-width"></el-input>
</el-form-item> </el-form-item>
<br/>
<h1>预约信息</h1> <h1>预约信息</h1>
<el-form-item label="当前状态"> <el-form-item label="当前状态">
<el-select v-model="formData.status" placeholder="请选择状态" disabled class="set-width"> <el-select v-model="formData.status" placeholder="请选择状态" disabled class="set-width">
...@@ -73,6 +73,74 @@ ...@@ -73,6 +73,74 @@
<el-form-item label="运营人员"> <el-form-item label="运营人员">
<el-input v-model="formData.operateUserName" placeholder="请输入患者姓名" disabled class="set-width"></el-input> <el-input v-model="formData.operateUserName" placeholder="请输入患者姓名" disabled class="set-width"></el-input>
</el-form-item> </el-form-item>
<!-- 新增 -->
<el-form-item label="分诊人员">
<el-input v-model="formData.triageOperatorName" placeholder="" disabled class="set-width"></el-input>
</el-form-item>
<el-form-item label="接诊人员">
<el-input v-model="formData.receptionOperatorName" placeholder="" disabled class="set-width"></el-input>
</el-form-item>
<el-form-item label="助诊意向时间" prop="appointBeginTime" >
<el-date-picker
:disabled="true"
type="datetime"
placeholder="开始时间"
v-model="formData.assistantBeginTime"
style="width: 200px;"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
<span>-</span>
<el-date-picker
:disabled="true"
type="datetime"
placeholder="结束时间"
v-model="formData.assistantEndTime"
style="width: 200px;"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item>
<el-form-item label="备注(助诊)" >
<span>{{formData.assistantRemark}}</span>
</el-form-item>
<el-form-item label="分诊科室">
<!-- 由于不可编辑,只展示,故前端option获取接口省略,由前端写死 -->
<el-select v-model="formData.triageDepartmentId" placeholder="请选择状态" disabled class="set-width">
<el-option v-for="item of [{ value: formData.triageDepartmentId, label: formData.triageDepartment }]" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="备注(分诊)" >
<span>{{ formData.triageRemark }}</span>
</el-form-item>
<el-form-item label="接诊意向时间" prop="appointBeginTime" >
<el-date-picker
:disabled="true"
type="datetime"
placeholder="开始时间"
v-model="formData.receptionBeginTime"
style="width: 200px;"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
<span>-</span>
<el-date-picker
:disabled="true"
type="datetime"
placeholder="结束时间"
v-model="formData.receptionEndTime"
style="width: 200px;"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item>
<!-- 新增 -->
<el-form-item label="预约时间" prop="appointBeginTime" > <el-form-item label="预约时间" prop="appointBeginTime" >
<el-date-picker <el-date-picker
:disabled="true" :disabled="true"
...@@ -101,7 +169,7 @@ ...@@ -101,7 +169,7 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<br/>
<h1>患者信息</h1> <h1>患者信息</h1>
<el-form-item label="患者姓名" prop="patientName" > <el-form-item label="患者姓名" prop="patientName" >
<el-input v-model="formData.patientName" placeholder="请输入患者姓名" class="set-width" :disabled="noable || editorType== 2" minlength='2' maxlength="20"></el-input> <el-input v-model="formData.patientName" placeholder="请输入患者姓名" class="set-width" :disabled="noable || editorType== 2" minlength='2' maxlength="20"></el-input>
...@@ -141,7 +209,7 @@ ...@@ -141,7 +209,7 @@
<el-input v-model="formData.patientMobilePhone" placeholder="请输入手机号" class="set-width" :disabled="noable || editorType== 2" maxlength="11"></el-input> <el-input v-model="formData.patientMobilePhone" placeholder="请输入手机号" class="set-width" :disabled="noable || editorType== 2" maxlength="11"></el-input>
</el-form-item> </el-form-item>
<br/>
<h1>助诊信息</h1> <h1>助诊信息</h1>
<el-form-item label="助诊医生" prop="userName"> <el-form-item label="助诊医生" prop="userName">
<el-input v-model="formData.userName" placeholder="请选择助诊医生" class="set-width" disabled></el-input> <el-input v-model="formData.userName" placeholder="请选择助诊医生" class="set-width" disabled></el-input>
...@@ -175,12 +243,15 @@ ...@@ -175,12 +243,15 @@
<el-option v-for="item of relationList" :key="item.value" :label="item.label" :value="item.value" ></el-option> <el-option v-for="item of relationList" :key="item.value" :label="item.label" :value="item.value" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="招募人" v-if="formData.crrsName" prop="crrsName">
{{ formData.crrsName }}
</el-form-item> -->
<br/>
<h1>接诊信息</h1> <h1>接诊信息</h1>
<el-form-item label="接诊医生" prop="doctorName"> <el-form-item label="接诊医生" prop="doctorName">
<!-- <el-input v-model="formData.doctorName" placeholder="请选择接诊医生" class="set-width" disabled></el-input>--> <!-- <el-input v-model="formData.doctorName" placeholder="请选择接诊医生" class="set-width" disabled></el-input>-->
<el-select @change="doctorChanged($event)" filterable v-model="formData.doctorName" placeholder="请选择接诊医生" class="set-width" :disabled="editorType== 2 || this.formData.status == 4"> <el-select @change="doctorChanged($event)" filterable v-model="formData.doctorName" placeholder="请选择接诊医生" class="set-width" disabled>
<el-option v-for="item of doctorList" :key="item.doctorId" :label="item.doctorName" :value="item.doctorId"></el-option> <el-option v-for="item of doctorList" :key="item.doctorId" :label="item.doctorName" :value="item.doctorId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -210,10 +281,37 @@ ...@@ -210,10 +281,37 @@
<el-option v-for="item of doctorSourceList" :key="item.value" :label="item.label" :value="item.value" ></el-option> <el-option v-for="item of doctorSourceList" :key="item.value" :label="item.label" :value="item.value" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="医生服务费" prop="serviceFee"> <!-- <el-form-item label="医生服务费" prop="serviceFee">
<el-input v-model="formData.serviceFee" placeholder="请输入医生服务费" class="set-width" :disabled="editorType== 2"></el-input> (单位元) <el-input v-model="formData.serviceFee" placeholder="请输入医生服务费" class="set-width" :disabled="editorType== 2"></el-input> (单位元)
</el-form-item> -->
<!-- 新增 -->
<el-form-item label="站外医生姓名" prop="outsideDoctor">
<el-input v-model="formData.outsideDoctor" placeholder="请输入站外医生姓名" class="set-width" :disabled="true"></el-input>
</el-form-item> </el-form-item>
<!-- -->
<br/>
<h1>结算信息</h1>
<el-form-item label="接诊服务费" prop="receptionServiceFeeStr">
{{formData.receptionServiceFeeStr ? `¥ ${formData.receptionServiceFeeStr}` : ''}}
</el-form-item>
<el-form-item label="接诊付款方式" prop="receptionPayType">
{{getReceptionPayType}}
</el-form-item>
<el-form-item label="接诊付款时间" prop="receptionSettleTime">
{{formData.receptionSettleTime}}
</el-form-item>
<el-form-item label="助诊服务费" prop="assistantServiceFeeStr">
{{formData.assistantServiceFeeStr ? `¥ ${formData.assistantServiceFeeStr}` : ''}}
</el-form-item>
<el-form-item label="助诊付款方式" prop="assistantPayType">
{{getAssistantPayType}}
</el-form-item>
<el-form-item label="助诊付款时间" prop="assistantSettleTime">
{{formData.assistantSettleTime}}
</el-form-item>
<br/>
<h1>问诊信息</h1> <h1>问诊信息</h1>
<el-form-item label="初/复诊" prop="diagnoseStage" > <el-form-item label="初/复诊" prop="diagnoseStage" >
<el-radio-group v-model="formData.diagnoseStage" :disabled="formData.status==4 || editorType== 2"> <el-radio-group v-model="formData.diagnoseStage" :disabled="formData.status==4 || editorType== 2">
...@@ -242,13 +340,39 @@ ...@@ -242,13 +340,39 @@
<el-input type="textarea" v-model="formData.diagnoseAdvice" placeholder="请输入更新建议(更新后原建议将被删除)" :disabled="editorType== 2" maxlength="1000" show-word-limit></el-input> <el-input type="textarea" v-model="formData.diagnoseAdvice" placeholder="请输入更新建议(更新后原建议将被删除)" :disabled="editorType== 2" maxlength="1000" show-word-limit></el-input>
</el-form-item> </el-form-item>
<el-form-item label="系统录音/录像"> <el-form-item label="系统录音/录像">
<el-form-item v-for="item in formData.vodList"> <el-form-item v-for="item in formData.vodList" :key="item.url">
<el-link :href="item.url" target="_blank">{{diagnoseLogId + '_' + item.name + '_' + formData.doctorName + '_' + formData.doctorDepartment + '.mp4'}}</el-link> <el-link :href="item.url" target="_blank">{{diagnoseLogId + '_' + item.name + '_' + formData.doctorName + '_' + formData.doctorDepartment + '.mp4'}}</el-link>
</el-form-item> </el-form-item>
</el-form-item> </el-form-item>
<el-form-item label="音频" > <el-form-item label="音频" >
<upload-music :isDisable="editorType== 2" :musicList="formData.illnessAudioUrls" ref="musicComponent"></upload-music> <upload-music :isDisable="editorType== 2" :musicList="formData.illnessAudioUrls" ref="musicComponent"></upload-music>
</el-form-item> </el-form-item>
<br/>
<!-- 新增 -->
<h1>备注信息</h1>
<el-form-item label="患者是否在场" prop="patInFlag" >
<el-radio-group v-model="formData.patInFlag" :disabled="editorType== 2">
<el-radio :label="1"></el-radio>
<el-radio :label="2"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否有价值" prop="valueFlag" v-show="formData.patInFlag == 1">
<el-radio-group v-model="formData.valueFlag" :disabled="editorType== 2">
<el-radio :label="1"></el-radio>
<el-radio :label="2"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="" prop="worthlessReason" v-show="formData.valueFlag == 2 && formData.patInFlag == 1">
<el-input type="textarea" v-model="formData.worthlessReason" placeholder="请输入低价值说明" maxlength="1000" :disabled="editorType== 2" show-word-limit></el-input>
</el-form-item>
<el-form-item label="其他备注" prop="otherRemark" >
<el-input type="textarea" v-model="formData.otherRemark" placeholder="请输入其他备注信息" maxlength="1000" :disabled="editorType== 2" show-word-limit></el-input>
</el-form-item>
<!-- -->
<br/>
<h1>跟进信息</h1>
<el-form-item label="是否跟进" > <el-form-item label="是否跟进" >
<el-radio-group v-model="formData.followFlag" :disabled="editorType== 2"> <el-radio-group v-model="formData.followFlag" :disabled="editorType== 2">
<el-radio :label="1"></el-radio> <el-radio :label="1"></el-radio>
...@@ -282,8 +406,50 @@ ...@@ -282,8 +406,50 @@
<el-form-item label="备注"> <el-form-item label="备注">
<el-input type="textarea" v-model="formData.remark" placeholder="请输入备注信息,如沟通协商记录等" maxlength="1000" :disabled="editorType== 2" show-word-limit></el-input> <el-input type="textarea" v-model="formData.remark" placeholder="请输入备注信息,如沟通协商记录等" maxlength="1000" :disabled="editorType== 2" show-word-limit></el-input>
</el-form-item> </el-form-item>
</el-form>
<br/>
<!-- -->
<h1>操作日志</h1>
<el-table
:data="logData"
class="log-info">
<el-table-column
prop="operateTime"
width="180"
label="变更时间">
</el-table-column>
<el-table-column
prop="operateUserName"
label="变更人"
width="120">
</el-table-column>
<el-table-column
prop="to"
label="变更后内容">
</el-table-column>
<el-table-column
prop="from"
label="变更前内容">
</el-table-column>
</el-table>
<!-- 与产品确认,不需要分页功能<br/>
<el-row :gutter="0" type="flex" justify="end" align="center">
<el-pagination
class="log-info-pagin"
@size-change="handlelogSizeChange"
@current-change="handlelogCurrentChange"
:current-page="logCurrentPage"
:page-sizes="[5, 10, 20, 50]"
:page-size="5"
layout="total, sizes, prev, pager, next, jumper"
:total="logTotalCount">
</el-pagination>
</el-row>-->
<!-- -->
</el-form>
<br/>
<el-row :gutter="60" type="flex" justify="center" align="center"> <el-row :gutter="60" type="flex" justify="center" align="center">
<el-button @click="cancle">{{editorType== 1 ? '取消' : '返回'}}</el-button> <el-button @click="cancle">{{editorType== 1 ? '取消' : '返回'}}</el-button>
<el-button type="primary" @click="save" v-if="editorType== 1" :disabled="btnDisable">保存</el-button> <el-button type="primary" @click="save" v-if="editorType== 1" :disabled="btnDisable">保存</el-button>
...@@ -296,6 +462,10 @@ import uploadImg from '@/components/editor/upload-img' ...@@ -296,6 +462,10 @@ import uploadImg from '@/components/editor/upload-img'
import uploadMusic from '@/components/editor/upload-music' import uploadMusic from '@/components/editor/upload-music'
import { TYPE_LIST, PAY_LIST, SOURCE_LIST, STATUS_LIST, CAR_LIST, SEX_LIST, RELATION_LIST, D_S_LIST, FOLLW_LIST } from '@/utils/constants' import { TYPE_LIST, PAY_LIST, SOURCE_LIST, STATUS_LIST, CAR_LIST, SEX_LIST, RELATION_LIST, D_S_LIST, FOLLW_LIST } from '@/utils/constants'
import { getBirth } from '@/utils/index' import { getBirth } from '@/utils/index'
const PAY_TYPE = {
1: '自动付款',
2: '手动付款'
}
export default { export default {
components: { components: {
uploadImg, uploadImg,
...@@ -303,6 +473,7 @@ export default { ...@@ -303,6 +473,7 @@ export default {
}, },
data(){ data(){
return { return {
asd: 123,
diagnoseLogId: '', diagnoseLogId: '',
birthDisable: false, birthDisable: false,
noable: false, noable: false,
...@@ -324,6 +495,16 @@ export default { ...@@ -324,6 +495,16 @@ export default {
operateUserName: '', operateUserName: '',
appointBeginTime: '', appointBeginTime: '',
appointEndTime: '', appointEndTime: '',
triageOperatorName: '', // 分诊人员姓名
receptionOperatorName: '', // 接诊人员姓名
assistantBeginTime: '', // 助诊意向开始时间
assistantEndTime: '', //助诊意向结束时间
assistantRemark: '', // 助诊备注
triageDepartmentId: '', // 分诊科室id,
triageDepartment: '', // 分诊科室名
triageRemark: '', // 分诊备注
receptionBeginTime: '', // 接诊意向开始时间
receptionEndTime: '', // 接诊意向结束时间
// 患者信息 // 患者信息
patientName: '', patientName: '',
idCardType: 1, idCardType: 1,
...@@ -339,7 +520,8 @@ export default { ...@@ -339,7 +520,8 @@ export default {
userDepartment: '', userDepartment: '',
userMobile: '', userMobile: '',
patientRelation: '', patientRelation: '',
//医生信息 // crrsName: '', // 招募人
// 医生信息
doctorName: '', doctorName: '',
doctorTitle: '', doctorTitle: '',
doctorHospital: '', doctorHospital: '',
...@@ -347,6 +529,7 @@ export default { ...@@ -347,6 +529,7 @@ export default {
doctorMobile: '', doctorMobile: '',
doctorSource: '', doctorSource: '',
serviceFee: '', serviceFee: '',
outsideDoctor: '', // 站外医生姓名
// 问诊信息 // 问诊信息
diagnoseStage: '', diagnoseStage: '',
determineFlag: '', determineFlag: '',
...@@ -365,6 +548,20 @@ export default { ...@@ -365,6 +548,20 @@ export default {
remark: '', remark: '',
maritalStatus: 2, maritalStatus: 2,
createType: 1 , ////创建方式1.系统创建 2.手动创建 createType: 1 , ////创建方式1.系统创建 2.手动创建
// 备注信息
patInFlag: '', // 患者是否在场 1是 2否
valueFlag: '', // 是否有价值 1是 2否
worthlessReason: '', // 无价值原因
otherRemark: '', // 其他备注
// 结算信息
receptionServiceFee: 0, // 接诊医生服务费单位分
receptionServiceFeeStr: '', // 接诊医生服务费展示字段
receptionPayType: '', // 接诊医生付款方式1自动打款2手动打款
receptionSettleTime: '', // 接诊医生结算时间
assistantServiceFee: 0, // 助诊医生服务费单位分
assistantServiceFeeStr: '', // 助诊医生服务费展示字段
assistantPayType: '', // 助诊医生付款方式1自动打款2手动打款
assistantSettleTime: '', // 助诊医生结算时间
// 录像信息 // 录像信息
vodList: { vodList: {
name: '', name: '',
...@@ -393,7 +590,6 @@ export default { ...@@ -393,7 +590,6 @@ export default {
{ required: true, message: '请选择证件类型', trigger: 'change' } { required: true, message: '请选择证件类型', trigger: 'change' }
], ],
idCard: [ idCard: [
{ required: true, message: '请输入证件号', trigger: 'blur' },
{ min: 18, message: '长度18个字符', trigger: 'blur' }, { min: 18, message: '长度18个字符', trigger: 'blur' },
{ pattern: /[0-9A-Za-z]{6,24}$/, message: '只能是数字或字母' } { pattern: /[0-9A-Za-z]{6,24}$/, message: '只能是数字或字母' }
], ],
...@@ -428,6 +624,18 @@ export default { ...@@ -428,6 +624,18 @@ export default {
diagnoseAdvice: [ diagnoseAdvice: [
{ required: true, message: '请输入诊断建议', trigger: 'change' } { required: true, message: '请输入诊断建议', trigger: 'change' }
], ],
worthlessReason: [{
required: true, min: 2, max: 1000, message: '必填项,支持2-1000个字符', trigger: 'change'
}],
otherRemark: [{
required: true, min: 2, max: 1000, message: '必填项,支持2-1000个字符', trigger: 'change'
}],
patInFlag: [{
required: true, message: '必填项'
}],
valueFlag : [{
required: true, message: '必填项'
}]
}, },
endDateOpt: { endDateOpt: {
disabledData: (time) => { disabledData: (time) => {
...@@ -444,7 +652,20 @@ export default { ...@@ -444,7 +652,20 @@ export default {
time.getTime() < new Date(this.formData.appointBeginTime).getTime() time.getTime() < new Date(this.formData.appointBeginTime).getTime()
); );
} }
},
// 操作日志数据
/* 元素结构
{
operateTime: '2016-05-02',
operateUserName: '赵丽颖',
to: '问诊状态由已完成变成已结算',
from: '助诊医生时间不匹配'
} }
*/
logData: [],
// 分页功能与产品沟通不做
// logCurrentPage: 1,
// logTotalCount: 0
} }
}, },
created() { created() {
...@@ -454,6 +675,14 @@ export default { ...@@ -454,6 +675,14 @@ export default {
}, },
mounted() { mounted() {
}, },
computed: {
getReceptionPayType () {
return PAY_TYPE[this.formData.receptionPayType]
},
getAssistantPayType () {
return PAY_TYPE[this.formData.assistantPayType]
}
},
methods: { methods: {
search() { search() {
this.loading = true this.loading = true
...@@ -461,6 +690,11 @@ export default { ...@@ -461,6 +690,11 @@ export default {
this.GET(url).then(res => { this.GET(url).then(res => {
this.loading = false this.loading = false
if (res.code == '000000') { if (res.code == '000000') {
// for (let key in res.data) {
// if (!res.data[key]) {
// res.data[key] = '2019-01-02 12:00:00'
// }
// }
this.formData = res.data this.formData = res.data
this.formData.price = this.priceFilter(this.formData.price) this.formData.price = this.priceFilter(this.formData.price)
this.formData.serviceFee = this.priceFilter(this.formData.serviceFee) this.formData.serviceFee = this.priceFilter(this.formData.serviceFee)
...@@ -488,6 +722,7 @@ export default { ...@@ -488,6 +722,7 @@ export default {
this.$message.info('请稍后重试') this.$message.info('请稍后重试')
} }
this.getDoctorList() this.getDoctorList()
this.queryOperationLogs()
}).catch(() => { }).catch(() => {
this.$message.info('请稍后重试') this.$message.info('请稍后重试')
}); });
...@@ -504,9 +739,21 @@ export default { ...@@ -504,9 +739,21 @@ export default {
} }
}).catch(() => { }).catch(() => {
this.loading = false
this.$message.info('请稍后重试') this.$message.info('请稍后重试')
}); });
}, },
queryOperationLogs() {
let url = `/diagnose/admin/diagnose/log/${this.diagnoseLogId}`
this.GET(url).then(res => {
if (res.code == '000000') {
this.logData = res.data
}
// 非交互性功能接口不提示
}).catch(() => {
this.loading = false
})
},
// 预约开始时间选择时 // 预约开始时间选择时
continueBeginChange(val) { continueBeginChange(val) {
if(this.formData.appointEndTime) { if(this.formData.appointEndTime) {
...@@ -595,27 +842,27 @@ export default { ...@@ -595,27 +842,27 @@ export default {
this.btnDisable = false this.btnDisable = false
this.loading = false this.loading = false
}); });
return // return
if (valid) { // if (valid) {
let url = `/diagnose/admin/diagnose/update` // let url = `/diagnose/admin/diagnose/update`
let params = JSON.parse(JSON.stringify(this.formData)) // let params = JSON.parse(JSON.stringify(this.formData))
params.illnessImageUrls = this.$refs.imgComponent ? [...this.$refs.imgComponent.setNewArr()] : [] // params.illnessImageUrls = this.$refs.imgComponent ? [...this.$refs.imgComponent.setNewArr()] : []
params.illnessAudioUrls = this.$refs.musicComponent ? [...this.$refs.musicComponent.setNewArr()] : [] // params.illnessAudioUrls = this.$refs.musicComponent ? [...this.$refs.musicComponent.setNewArr()] : []
this.POST(url, params).then(res => { // this.POST(url, params).then(res => {
this.loading = false // this.loading = false
if (res.code == "000000") { // if (res.code == "000000") {
this.$message.success('保存成功'); // this.$message.success('保存成功');
// this.$router.back() // // this.$router.back()
} else { // } else {
this.$message({ // this.$message({
message: res.message, // message: res.message,
type: "error" // type: "error"
}) // })
} // }
}); // });
} else { // } else {
this.$message.info('请将信息填写完整') // this.$message.info('请将信息填写完整')
} // }
}); });
}, },
// 格式话音频/视频数组 // 格式话音频/视频数组
...@@ -629,7 +876,21 @@ export default { ...@@ -629,7 +876,21 @@ export default {
) )
}); });
return newArr return newArr
} },
// log
// handlelogSizeChange (val) {
// console.log('每页val条')
// },
// handlelogCurrentChange (val) {
// console.log('当前页为val')
// }
// @size-change="handlelogSizeChange"
// @current-change="handlelogCurrentChange"
// :current-page="logCurrentPage"
// :page-sizes="[100, 200, 300, 400]"
// :page-size="100"
// layout="total, sizes, prev, pager, next, jumper"
// :total="logTotalCount">
} }
} }
</script> </script>
...@@ -659,6 +920,13 @@ export default { ...@@ -659,6 +920,13 @@ export default {
.set-width { .set-width {
width: 300px; width: 300px;
} }
.log-info {
margin: 15px auto;
width: calc(100% - 30px);
}
.log-info-pagin {
margin: 0 15px;
}
} }
.btn-wrap { .btn-wrap {
padding: 40px 0 60px; padding: 40px 0 60px;
......
<template>
<div class="diagnosis-list-content">
<div class="component-content screenSet" id="screenSet">
<div class="title">咨询订单管理后台</div>
<el-form
:inline="true"
class="demo-form-inline from-box"
:model="searchParam"
label-width="80px"
ref="searchParam"
>
<el-row :gutter="10" type="flex" justify="center">
<el-col :span="8" class="t-c">
<el-form-item label="订单搜索" class="t-b">
<el-input
v-model.trim="searchParam.id"
clearable
placeholder="请输入ID"
style="width: 220px"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8" class="t-c">
<el-form-item label="运营人员" class="t-b">
<el-input
v-model.trim="searchParam.operateName"
clearable
placeholder="请输入运营/分诊运营/接诊运营姓名查询"
style="width: 220px"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8" class="t-c">
<el-form-item label="助诊医生" class="t-b">
<el-input
v-model.trim="searchParam.assistantVal"
clearable
placeholder="请输入姓名或电话"
style="width: 220px"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8" class="t-c">
<el-form-item label="接诊医生" class="t-b">
<el-input
v-model.trim="searchParam.receptionVal"
clearable
placeholder="请输入姓名或电话"
style="width: 220px"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" type="flex" justify="center">
<el-col :span="8" class="t-c">
<el-form-item label="分诊科室" class="t-b">
<el-select
v-model="searchParam.triageDepartmentId"
placeholder="请选择科室"
style="width: 220px"
filterable
>
<el-option
v-for="item of depList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" class="t-c">
<el-form-item label="预约类型" class="t-b">
<el-select
v-model="searchParam.diagnoseType"
placeholder="请选择预约类型"
style="width: 220px"
>
<el-option
v-for="item of tyleList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" class="t-c">
<el-form-item label="预约来源" class="t-b">
<el-select
v-model="searchParam.appointSource"
placeholder="请选择预约来源"
style="width: 220px"
>
<el-option
v-for="item of sourceList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" class="t-c">
<el-form-item label="创建日期" class="t-b">
<el-date-picker
v-model="createRangeTime"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 220px"
:picker-options="pickerOptions1"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" type="flex" justify="center">
<el-col :span="8" class="t-c">
<el-form-item label="退款日期" class="t-b">
<el-date-picker
v-model="cancelRangeTime"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 220px"
:picker-options="pickerOptions1"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8" class="t-c">
<el-form-item label="预约日期" class="t-b">
<el-date-picker
v-model="orderRangeTime"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 220px"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8" class="t-c">
<el-form-item label="完成时间" class="t-b">
<el-date-picker
v-model="completeRangeTime"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 220px"
:picker-options="pickerOptions1"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8" class="btn-wrap">
<el-button type="primary" class="submit-btn" @click="getsearch"
>搜索</el-button
>
<el-button type="warning" class="submit-btn" @click="reset"
>重置</el-button
>
</el-col>
</el-row>
<el-row :gutter="5" type="flex" justify="center" align="center">
<el-col :span="24" class="btn-wrap">
<el-button type="success" class="submit-btn big-btn" @click="batchSetOperator" v-if="searchParam.menuType == 1"
>批量设置运营</el-button>
<el-button type="info" class="submit-btn" @click="download"
>全部导出</el-button
>
</el-col>
</el-row>
</el-form>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane
:label="item.label"
:name="item.active"
v-for="item in tabpaneList"
:key="item.active"
>
<table-component
:menuType="searchParam.menuType"
:tData="tableData"
:pageNo="searchParam.pageNo"
:pageSize="searchParam.pageSize"
:totalRows="totalRows"
:loading="loading"
:tableHeight="tableHeight"
:multipleSelection.sync="multipleSelection"
@witeDiagnose="witeDiagnose"
@changeRun="changeRun"
@goDetail="goDetail"
@cancelRefund="cancelRefund"
@witeGo="witeGo"
@waitMatchDot="waitMatchDot"
@sendMessage="sendMessage"
@joinDiagnose="joinDiagnose"
@matchRun="matchRun"
@waitDiagnose="waitDiagnose"
@waitHzeDot="waitHzeDot"
@waitMatchTime="waitMatchTime"
@reMatchDot="reMatchDot"
@changeTime="changeTime"
@doneHandle="doneHandle"
@setOffice="setOffice"
@handleSizeChange="handleSizeChange"
@handleCurrentChange="handleCurrentChange"
></table-component>
</el-tab-pane>
</el-tabs>
<match-component @search="search" :matchVisible.sync="matchVisible" :diagnoseLogId="diagnoseLogId" :batchFlag="batchFlag" :multipleSelection="multipleSelection" :operateUserID="operateUserID"></match-component>
<refund-component @search="search" :refundVisible.sync="refundVisible" :diagnoseLogId="diagnoseLogId"></refund-component>
<followup-component @search="search" :followupVisible.sync="followupVisible" :diagnoseLogId="diagnoseLogId"></followup-component>
<matching-doctor @search="search" :doctorVisible.sync="doctorVisible" :diagnoseLogId="diagnoseLogId" :triageDepartmentId="triageDepartmentId" :bizType="bizType"></matching-doctor>
<diagnosis-component @search="search" :diagnosisVisible.sync="diagnosisVisible" :diagnoseLogId="diagnoseLogId"></diagnosis-component>
<coordinating-doctor @search="search" :coordinatingVisible.sync="coordinatingVisible" :diagnoseLogId="diagnoseLogId" :bizType="bizType"></coordinating-doctor>
<diagnosis-doctor @search="search" :diagnosisDoctorVisible.sync="diagnosisDoctorVisible" :diagnoseLogId="diagnoseLogId" :diagnoseType="diagnoseType" :doctorId="doctorId"></diagnosis-doctor>
<appointment-time @search="search" :appointmentTimeVisible.sync="appointmentTimeVisible" :diagnoseLogId="diagnoseLogId" :bizType="bizType"></appointment-time>
<diagnosis-time @search="search" :diagnosisTimeVisible.sync="diagnosisTimeVisible" :diagnoseLogId="diagnoseLogId" :bizType="bizType"></diagnosis-time>
<rematching-doctor @search="search" :rematchingVisible.sync="rematchingVisible" :diagnoseLogId="diagnoseLogId" :bizType="bizType"></rematching-doctor>
</div>
<a class="target" href="" target="_blank" ref="target"></a>
</div>
</template>
<script>
let vm = null;
import {updateDiagnosis} from "../../../utils/diagnosis";
const DOWN_URL= '/diagnose/admin/diagnose/export';
const LIST_URL= '/diagnose/admin/diagnose/list';
const DEP_URL= '/hospital/departments/0'
import TableComponent from "@/components/list/table-c";
import {
TYPE_LIST,
IS_FLLOW,
SOURCE_LIST,
ALL_TAB_LIST,
TRIAGE_TAB_LIST,
RECEPTION_TAB_LIST,
RUN_TAB_LIST,
MATCH_TAB_LIST
} from "@/utils/constants";
import MatchComponent from '@/components/common/match'
import RefundComponent from '@/components/common/refund'
import FollowupComponent from "../../../components/common/followup";
import MatchingDoctor from "../../../components/common/matching-doctor"
import DiagnosisComponent from "../../../components/common/diagnosis"
import CoordinatingDoctor from "../../../components/common/coordinating-doctor"
import DiagnosisDoctor from "../../../components/common/diagnosis-doctor"
import AppointmentTime from "../../../components/common/appointment-time"
import DiagnosisTime from "../../../components/common/diagnosis-time"
import RematchingDoctor from "../../../components/common/rematching-doctor"
export default {
components: {
TableComponent,
FollowupComponent,
MatchComponent,
RefundComponent,
MatchingDoctor,
DiagnosisComponent,
CoordinatingDoctor,
DiagnosisDoctor,
AppointmentTime,
DiagnosisTime,
RematchingDoctor
},
data() {
return {
endFlag: false,
beginFlag: false,
loading: false,
activeName: "99",
createRangeTime: '',
cancelRangeTime: '',
orderRangeTime: '',
completeRangeTime: '',
depList: [],
searchParam: {
id: "",
operateName: "",
assistantVal: "",
receptionVal: "",
triageDepartmentId: "",
diagnoseType: "", //预约问诊类型:1、音频 2、视频 3、图文
createdTimeBegin: "",
createdTimeEnd: "",
operateTimeBegin: "",
operateTimeEnd: "",
appointBeginTime: "",
appointEndTime: "",
doneTimeBegin: "",
doneTimeEnd: "",
pageSize: 15,
pageNo: 1,
menuType: 1, // 菜单类型:1、all 2、运营 3、待分诊 4、待接诊 5、外呼
status: ''
},
tyleList: TYPE_LIST,
fllowList: IS_FLLOW,
sourceList: SOURCE_LIST,
tabpaneList: [],
tableData: [],
totalRows: 0,
timeClickFlag: true,
tableHeight: 500,
diagnoseLogId: 0,
matchVisible:false,
refundVisible:false,
followupVisible:false,
doctorVisible:false,
diagnosisVisible:false,
coordinatingVisible:false,
diagnosisDoctorVisible:false,
appointmentTimeVisible:false,
diagnosisTimeVisible:false,
rematchingVisible:false,
multipleSelection:[],
batchFlag:false,
bizType:0,
diagnoseType:0,
doctorId:0,
operateUserID:"",
triageDepartmentId:0,
pickerOptions1: {
disabledDate: (time) => {
return time.getTime() > new Date().getTime(); //减去一天的时间代表可以选择同一天;
},
},
pickerOptions2: {
disabledDate: (time) => {
return time.getTime() < new Date().getTime(); //减去一天的时间代表可以选择同一天;
},
},
fromType: 0, //1或不传为为预约单列表 2为运营预约单列表 3为分诊台 4为接诊台
};
},
watch: {
'$route': {
handler(newVal, oldVal) {
if (newVal) {
this.init()
this.reset()
}
},
deep: true,
immediate: true,
}
},
created() {
vm = this;
this.getDep()
},
mounted() {
this.setTableHeight();
},
methods: {
init(){
this.fromType = +(this.$route.query.fromType || 1);
this.activeName = "99";
this.searchParam.status = '';
this.setTable();
},
// 不同也main切换不同的tab
setTable() {
let tabs = ALL_TAB_LIST;
switch (this.fromType) {
case 1:
tabs = ALL_TAB_LIST;
this.searchParam.menuType = 1;
break;
case 2:
tabs = RUN_TAB_LIST;
this.searchParam.menuType = 2;
break;
case 3:
tabs = TRIAGE_TAB_LIST;
this.searchParam.menuType = 3;
break;
case 4:
tabs = RECEPTION_TAB_LIST;
this.searchParam.menuType = 4;
break;
case 5:
tabs = MATCH_TAB_LIST;
this.searchParam.menuType = 5;
break;
default:
tabs = ALL_TAB_LIST;
this.searchParam.menuType = 1;
break;
}
this.tabpaneList = tabs;
},
resetPage() {
this.searchParam.pageSize = 15;
this.searchParam.pageNo = 1;
},
// 设置table的高度
setTableHeight() {
setTimeout(() => {
this.$nextTick(() => {
if (
document.getElementsByClassName("from-box") &&
document.getElementsByClassName("from-box")[0].clientHeight
) {
let height =
window.innerHeight -
50 -
140 -
10 -
160 -
document.getElementsByClassName("from-box")[0].clientHeight;
if (height > 300) {
this.tableHeight = height;
}
}
});
}, 20);
},
// tab切换
handleClick(val) {
this.searchParam.status = val.paneName == 99 ? '' : val.paneName;
this.getsearch();
},
// 初始化时间
initTime() {
const {createRangeTime, cancelRangeTime, orderRangeTime, completeRangeTime} = this;
this.setTime('createdTimeBegin','createdTimeEnd', createRangeTime);
this.setTime('cancelTimeBegin','cancelTimeEnd', cancelRangeTime);
this.setTime('appointBeginTime','appointEndTime', orderRangeTime);
this.setTime('doneTimeBegin','doneTimeEnd', completeRangeTime);
},
/**
* btime开始时间
* etime结束时间
* arrtime 时间数组
*/
setTime(btime,etime, arrtime) {
arrtime = arrtime || ['',''];
this.searchParam[btime] = arrtime[0];
this.searchParam[etime] = arrtime[1];
},
// 重置页面后搜索
getsearch() {
this.resetPage();
this.search()
},
search() {
this.loading = true;
this.initTime()
let url = LIST_URL;
this.POST(url, this.searchParam).then((res) => {
this.loading = false;
if (res.code == "000000") {
this.tableData = res.data.list;
this.totalRows = res.data.allSize;
}
});
},
// 获取科室
getDep() {
let url = DEP_URL;
this.GET(url).then((res) => {
if (res.code === '000000') {
this.depList = [{
id: '',
name: '全部'
},...res.data];
}
});
},
// 重置
reset() {
this.createRangeTime = "";
this.cancelRangeTime = "";
this.orderRangeTime = "";
this.completeRangeTime = "";
this.searchParam = Object.assign(this.searchParam,{
id: "",
operateName: "",
assistantVal: "",
receptionVal: "",
triageDepartmentId: "",
diagnoseType: "", //预约问诊类型:1、音频 2、视频 3、图文
createdTimeBegin: "",
createdTimeEnd: "",
operateTimeBegin: "",
operateTimeEnd: "",
appointBeginTime: "",
appointEndTime: "",
doneTimeBegin: "",
doneTimeEnd: ""
})
this.getsearch();
},
// 导出
download() {
let url = DOWN_URL
this.initTime()
let params = this.searchParam
this.POST(url, params).then(res => {
this.loading = false;
if (res.code == "000000") {
this.$confirm('将于24小时内导出成功,是否跳转下载列表页?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$router.push('/down-list')
})
}
}).catch(err => {
console.log('网络出现点儿问题,稍后重试')
})
},
//设为待问诊
witeDiagnose(row) {
this.appointmentTimeVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 11;
},
//更换运营
changeRun(row) {
this.matchVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.batchFlag = false;
this.operateUserID = row.operateUserId;
},
//查看详情/编辑详情
goDetail(row,flag) {
// this.$router.push({
// path: "/diagnosis-editor",
// query: { id: row.diagnoseLogId, editorType: flag },
// });
let target = this.$refs.target
const { origin, pathname } = window.location
let editorType = flag ? 1 : 2
let u = `${origin}${pathname}#/diagnosis-editor?id=${row.diagnoseLogId}&editorType=${editorType}`
target.setAttribute('href', u)
target.click()
},
//取消/退款
cancelRefund(row) {
this.refundVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
},
//设为稍后跟进
witeGo(row) {
this.followupVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
},
//设为待匹配医生
waitMatchDot(row) {
this.diagnoseLogId = row.diagnoseLogId;
// 待分诊
if(row.status == 22){
this.doctorVisible = true;
this.bizType = 7;
this.triageDepartmentId = row.triageDepartmentId;
}
else {
this.diagnosisTimeVisible = true;
this.bizType = 6;
}
},
//发送消息
sendMessage(row) {
this.$router.push({path: '/diagnosis-im', query: {tid: row.imTeamId}})
},
//加入问诊
joinDiagnose(row) {
this.$confirm('确定加入问诊吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.clearSession()
this.$router.push({path: '/diagnosis-live', query: {tid: row.imTeamId, diagnoseLogId: row.diagnoseLogId}})
})
},
//匹配运营
matchRun(row) {
this.$confirm('确定匹配并跟进该预约单?', '确定匹配?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let req = {
id: row.diagnoseLogId,
bizType: 3
}
updateDiagnosis(req).then(function (res) {
if (res.code == "000000") {
// this.cancel();
vm.search();
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(error);
});
})
},
//设为待分诊
waitDiagnose(row) {
this.diagnosisTimeVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 6;
},
//设为待协调医生
waitHzeDot(row) {
this.coordinatingVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 8;
},
//设为待确认时间
waitMatchTime(row) {
this.diagnosisDoctorVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.diagnoseType = row.diagnoseType;
if(row.doctorId == 0){
this.doctorId = "";
}
else {
this.doctorId = row.doctorId;
}
},
//重新匹配医生
reMatchDot(row) {
this.rematchingVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 10;
},
//修改时间
changeTime(row) {
this.appointmentTimeVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 12;
},
//发起问诊
// call(row) {
// this.$confirm('确定发起问诊吗?', '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(() => {
// this.clearSession()
// this.$router.push({path: '/diagnosis-live', query: {tid: row.imTeamId, diagnoseLogId: row.diagnoseLogId}})
// })
// },
//设为已完成
doneHandle(row) {
this.$confirm('请先确定问诊已结束?再将问诊设为已完成,确定继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let req = {
id: row.diagnoseLogId,
bizType: 13
}
updateDiagnosis(req).then(function (res) {
if (res.code == "000000") {
// this.cancel();
vm.search();
} else {
vm.$message.error(res.message);
}
}).catch(function (error) {
vm.$message.error(error);
});
})
},
// 设置科室
setOffice(row) {
this.doctorVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 15;
this.triageDepartmentId = row.triageDepartmentId;
},
handleSizeChange(value) {
this.searchParam.pageSize = value;
this.search();
},
handleCurrentChange(value) {
this.searchParam.pageNo = value;
this.search();
},
// 清除直播时间相关的seession
clearSession() {
sessionStorage.removeItem("TIME_askTime");
sessionStorage.removeItem("TIME_answerTime");
sessionStorage.removeItem("TIME_useTime");
sessionStorage.removeItem("TIME_loseTime");
},
// 取消预约
// cancelBtn(row) {},
// 批量设置运营
batchSetOperator(){
if(this.multipleSelection.length == 0){
this.$message({
message: '请先选择要操作的数据',
type: "warning"
});
return;
}
this.matchVisible = true;
this.batchFlag = true;
}
},
};
</script>
<style lang="scss" scoped>
.diagnosis-list-content {
.component-content {
padding: 10px;
background: #fff;
overflow: hidden !important;
.title {
margin-bottom: 20px;
}
.t-c {
//text-align: center;
}
.btn-wrap {
text-align: right;
}
.submit-btn {
margin-right: 50px;
margin-top: 10px;
&.big-btn {
margin-right: 20px;
}
}
.t-b {
margin-bottom: 10px;
}
}
}
</style>
<template>
<div class="diagnosis-list-content">
<div class="component-content screenSet" id="screenSet">
<div class="title">咨询订单管理后台</div>
<el-form ref="form" :inline="true" :model="searchParam" label-suffix=":" label-width="120px" label-position="right" style="width:100%;">
<el-row :gutter="30" type="flex" style="margin-bottom:0;">
<el-col :span="21">
<el-form-item label="搜索">
<el-input
v-model="searchParam.searchVal"
clearable
placeholder="支付订单、医生姓名、运营姓名搜索"
style="width:300px;"
@change="search(1)"></el-input>
</el-form-item>
<el-form-item label="">
<el-select v-model="searchParam.status" @change="search(1)" clearable placeholder="问诊状态" style="width:150px">
<el-option
v-for="(eItem,eIndex) in diagnosisSelect"
:key="eIndex"
:label="eItem.value"
:value="eItem.no">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="">
<el-select v-model="searchParam.diagnoseType" @change="search(1)" clearable placeholder="问诊类型" style="width:150px">
<el-option
v-for="(eItem,eIndex) in diagnosisTypeSelect"
:key="eIndex"
:label="eItem.value"
:value="eItem.no">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3" style="padding:0;text-align:right;padding-right:15px;">
<el-button type="primary" size="small" @click="search(1)">搜索</el-button>
</el-col>
</el-row>
</el-form>
<!-- 表格 -->
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="已接诊" name="first">
<el-table
class="search-table"
:data="tableData"
style="width: 100%"
v-loading="loading">
<el-table-column prop="orderNo" label="订单ID" min-width="170" align="left"></el-table-column>
<el-table-column prop="operateUserName" label="运营人员" min-width="100" align="left"></el-table-column>
<el-table-column prop="specialName" label="专区名称" min-width="120" align="left"></el-table-column>
<el-table-column prop="diagnoseType" label="问诊类型" min-width="80" align="left">
<template slot-scope="scope">
<span>{{scope.row.diagnoseType | diagnosisTypeFilter}}</span>
</template>
</el-table-column>
<el-table-column prop="doctorName" label="接诊医生" min-width="100" align="left"></el-table-column>
<el-table-column prop="doctorMobile" label="接诊电话" min-width="120" align="left"></el-table-column>
<el-table-column prop="userName" label="问诊患者" min-width="120" align="left">
<template slot-scope="scope">
<span>{{scope.row.patientName}}</span>
<span></span>
<span>({{scope.row.userName}})</span>
</template>
</el-table-column>
<el-table-column prop="userMobile" label="问诊电话" min-width="120" align="left"></el-table-column>
<el-table-column prop="price" label="价格" min-width="60" align="left">
<template slot-scope="scope">
<span>{{scope.row.price | priceFilter}}</span>
</template>
</el-table-column>
<el-table-column prop="appointBeginTime" label="预约时间" min-width="160" align="left">
<template slot-scope="scope">
<p>{{scope.row.appointBeginTime}}</p>
<p>{{scope.row.appointEndTime}}</p>
</template>
</el-table-column>
<el-table-column prop="statusStr" label="问诊状态" min-width="80" align="left"></el-table-column>
<el-table-column label="操作" fixed="right" align="center" min-width="150">
<template slot-scope="scope">
<!-- 1 初始状态 2待咨询 3 咨询中 4已结束 -->
<div>
<el-button v-if="scope.row.status != 4" type="primary" size="small" @click="timeHandle(scope.row)" style="margin-top: 10px;">修改时间</el-button>
<el-button v-if="scope.row.status == 3" type="primary" size="small" @click="endDiagnosis(scope.row)" style="margin-top: 10px;">结束</el-button>
</div>
<div>
<el-button v-if="scope.row.status == 3 && scope.row.imStatus == 1" type="primary" size="small" @click="callAll(scope.row)" style="margin-top: 10px;">呼叫双方</el-button>
<el-button v-if="scope.row.status == 3 && scope.row.imStatus == 2" type="primary" size="small" @click="jionCommunicate(scope.row)" style="margin-top: 10px;">加入问诊</el-button>
<el-button type="primary" size="small" @click="sendMessage(scope.row)" style="margin-top: 10px;">发送消息</el-button>
</div>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<div class="pagination">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchParam.pageNo"
:page-sizes="[15, 30, 50, 100, 200, 500, 700, 1000, 1500, 2000]"
:page-size="searchParam.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows">
</el-pagination>
</div>
</el-tab-pane>
<el-tab-pane label="未匹配" name="second">
<el-table
class="search-table"
:data="tableData"
style="width: 100%"
v-loading="loading">
<el-table-column prop="orderNo" label="订单ID" min-width="170" align="left"></el-table-column>
<el-table-column prop="operateUserName" label="运营人员" min-width="100" align="left"></el-table-column>
<el-table-column prop="specialName" label="专区名称" min-width="120" align="left"></el-table-column>
<el-table-column prop="diagnoseType" label="问诊类型" min-width="80" align="left">
<template slot-scope="scope">
<span>{{scope.row.diagnoseType | diagnosisTypeFilter}}</span>
</template>
</el-table-column>
<el-table-column prop="doctorName" label="接诊医生" min-width="100" align="left"></el-table-column>
<el-table-column prop="doctorMobile" label="接诊电话" min-width="120" align="left"></el-table-column>
<el-table-column label="问诊患者" min-width="120" align="left">
<template slot-scope="scope">
<span>{{scope.row.patientName}}</span>
<span></span>
<span>({{scope.row.userName}})</span>
</template>
</el-table-column>
<el-table-column prop="userMobile" label="问诊电话" min-width="120" align="left"></el-table-column>
<el-table-column label="价格" min-width="80" align="left">
<template slot-scope="scope">
<span>{{scope.row.price | priceFilter}}</span>
</template>
</el-table-column>
<el-table-column prop="appointBeginTime" label="预约时间" min-width="160" align="left">
<template slot-scope="scope">
<p>{{scope.row.appointBeginTime}}</p>
<p>{{scope.row.appointEndTime}}</p>
</template>
</el-table-column>
<el-table-column prop="statusStr" label="问诊状态" min-width="80" align="left"></el-table-column>
<el-table-column label="操作" fixed="right" align="center" min-width="100">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="selectBtn(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchParam.pageNo"
:page-sizes="[15, 30, 50, 100, 200, 500, 700, 1000, 1500, 2000]"
:page-size="searchParam.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows">
</el-pagination>
</div>
</el-tab-pane>
</el-tabs>
<!-- 预约时间 -->
<el-dialog
title="预约时间"
:visible.sync="timeVisible"
width="40%">
<el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">
<el-form ref="timeForm"
:rules="timeRules"
:model="timeForm"
label-width="150px"
label-suffix=":"
label-position="right"
size="mini"
style="width: 100%;">
<el-col :span="24">
<el-form-item label="开始时间" prop="beginTime">
<el-date-picker
v-model="timeForm.beginTime"
type="datetime"
placeholder="请选择开始时间"
value-format="yyyy-MM-dd HH:mm:ss"
@change="changeBeginTime">
</el-date-picker>
<p v-if="beginFlag" style="color: red;font-size: 12px">开始时间不能大于结束时间</p>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker
v-model="timeForm.endTime"
type="datetime"
placeholder="请选择结束时间"
value-format="yyyy-MM-dd HH:mm:ss"
@change="changeEndTime">
</el-date-picker>
<p v-if="endFlag" style="color: red;font-size: 12px">结束时间不能小于开始时间</p>
</el-form-item>
</el-col>
</el-form>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="timeVisible = false">取 消</el-button>
<el-button type="primary" @click="confirmTime">确 定</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
<script>
export default {
data(){
return {
endFlag: false,
beginFlag: false,
loading: false,
activeName: 'second',
timeVisible: false,
searchParam: {
searchVal: '',
status: '', // 2、待问诊3、问诊中 4、已问诊"
diagnoseType: '', // 1、音频 2、视频
tab: 2, // 1、已分配 2、未分配
pageSize: 15,
pageNo: 1
},
timeForm:{
diagnoseLogId: '',
beginTime: '',
endTime: ''
},
timeSelect: [],
diagnosisSelect: [],
diagnosisTypeSelect: [],
tableData: [],
totalRows: 0,
timeRules: {
'beginTime': [
{ required: true, message: '请选择预约开始时间', trigger: 'change'}
],
'endTime': [
{ required: true, message: '请选择预约结束时间', trigger: 'change'}
]
},
liveBack: false,
timeClickFlag: true
}
},
mounted() {
this.liveBack = this.$route.query.liveBack || false
if(this.liveBack) {
this.activeName = 'first'
this.searchParam.tab = 1
}else {
this.activeName = 'second'
this.searchParam.tab = 2
}
this.getDiagnoseTypeList()
this.getDiagnoseList()
this.search()
},
methods: {
changeBeginTime(val) {
this.beginFlag = false
this.endFlag = false
let b = new Date(val).getTime(), e
if(this.timeForm.endTime) {
e = new Date(this.timeForm.endTime).getTime()
}
if(val) this.beginFlag = b > e ? true : false
},
changeEndTime(val) {
this.beginFlag = false
this.endFlag = false
let b = new Date(val).getTime(), e
if(this.timeForm.beginTime) {
e = new Date(this.timeForm.beginTime).getTime()
}
if(val) this.endFlag = b < e ? true : false
},
// 问诊类型
getDiagnoseTypeList() {
let url = `/basic-data/constants?typeCode=P253`
this.GET(url).then(res => {
if (res.code == "000000") {
this.diagnosisTypeSelect = res.data
}
})
},
// 问诊状态
getDiagnoseList() {
let url = `/basic-data/constants?typeCode=P254`
this.GET(url).then(res => {
if (res.code == "000000") {
this.diagnosisSelect = res.data
}
});
},
// tab切换
handleClick(val) {
this.searchParam.tab = val.name == 'second' ? 2: 1
this.search()
},
search(a) {
if(a) this.searchParam.pageNo = 1
this.loading = true
let url = `/diagnose/admin/diagnose/`
let params = this.searchParam
this.POST(url, params).then(res => {
this.loading = false
if (res.code == "000000") {
this.tableData = res.data.list
this.totalRows = res.data.allSize
}
});
},
// 预约时间
timeHandle(row) {
this.beginFlag = false
this.endFlag = false
this.timeVisible = true
if(this.$refs.timeForm) {
this.$refs.timeForm.resetFields()
}
this.timeForm.diagnoseLogId = row.diagnoseLogId
this.timeForm.beginTime = row.appointBeginTime
this.timeForm.endTime = row.appointEndTime
},
confirmTime() {
let timeoutId = null
if(this.timeClickFlag) {
this.timeClickFlag = false
timeoutId && clearTimeout(timeoutId)
timeoutId = setTimeout(() => {
this.clickHandle()
}, 2000)
}
},
// 防止按钮多次点击
clickHandle() {
this.$refs.timeForm.validate((valid) => {
if(valid) {
if(this.beginFlag || this.endFlag) {
return
}
this.loading = true
this.POST('/diagnose/admin/diagnose/appointTime', this.timeForm).then(res => {
this.loading = false
this.timeClickFlag = true
if (res.code == "000000") {
this.$message({
message: '修改预约时间成功',
type: "success"
});
this.searchParam.tab = 1
this.timeVisible = false
this.search()
}else {
this.$message({
message: res.message,
type: "error"
})
}
});
}
})
},
// 结束问诊
endDiagnosis(row) {
this.$confirm('确定结束问诊吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.POST(`/diagnose/admin/diagnose/end/${row.diagnoseLogId}`, '').then(res => {
if (res.code == "000000") {
this.$message({
message: '成功结束问诊',
type: "success"
})
this.searchParam.tab = 1
this.search()
}else {
this.$message({
message: res.message,
type: "error"
})
}
});
})
},
// 呼叫双方
callAll(row) {
this.$confirm('确定呼叫双方吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.POST(`/diagnose/admin/diagnose/call/${row.diagnoseLogId}`, '').then(res => {
if (res.code != "000000") {
this.$message({
message: res.message,
type: "error"
})
}
})
})
},
// 加入问诊
jionCommunicate(row) {
this.$confirm('确定加入问诊吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.clearSession()
this.$router.push({path: '/diagnosis-live', query: {tid: row.imTeamId, diagnoseLogId: row.diagnoseLogId}})
})
},
// 发送消息
sendMessage(row) {
this.$router.push({path: '/diagnosis-im', query: {tid: row.imTeamId}})
},
// 选择
selectBtn(row) {
this.POST(`/diagnose/admin/diagnose/choose/${row.diagnoseLogId}`, '')
.then(res => {
if (res.code == "000000") {
this.$message({
message: '选择成功',
type: "success"
});
this.searchParam.tab = 1
this.search()
}else {
this.$message({
message: res.message,
type: "error"
})
}
})
.catch((error) => {
this.$message({
message: error,
type: "error"
})
})
this.activeName = 'first'
this.searchParam.tab = 1
this.search()
},
handleSizeChange(value) {
this.searchParam.pageSize = value
this.search()
},
handleCurrentChange(value) {
this.searchParam.pageNo = value
this.search()
},
// 清除直播时间相关的seession
clearSession() {
sessionStorage.removeItem('TIME_askTime')
sessionStorage.removeItem('TIME_answerTime')
sessionStorage.removeItem('TIME_useTime')
sessionStorage.removeItem('TIME_loseTime')
}
}
}
</script>
<style lang="scss" scoped>
.diagnosis-list-content {
.component-content {
padding: 10px;
background: #fff;
overflow: hidden !important;
.title {
margin-bottom: 30px;
}
}
}
</style>
\ No newline at end of file
...@@ -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 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册