提交 af7d58c2 编写于 作者: xinglee23's avatar xinglee23

Merge branch 'release' into feature/wxl

NODE_ENV=development NODE_ENV=development
# baseUrl # baseUrl
BASE_URL=/pica-admin-consultation/ BASE_URL=/consultation/pica-admin-consultation/
# 路由 base # 路由 base
VUE_APP_BASE_ROUTE_URL=/consultation/pica-admin-consultation/ VUE_APP_BASE_ROUTE_URL=/consultation/pica-admin-consultation/
......
...@@ -17,4 +17,4 @@ VUE_APP_IS_LOCAL=true ...@@ -17,4 +17,4 @@ VUE_APP_IS_LOCAL=true
VUE_APP_APPID=wxf4e66242d31c81c2 VUE_APP_APPID=wxf4e66242d31c81c2
#本地token #本地token
VUE_APP_TOKEN=BD84987E12C94A659DA95DE2BF177A76 VUE_APP_TOKEN=B638EE700AD348B8B432E7DF53A48E87
...@@ -2,7 +2,7 @@ module.exports = { ...@@ -2,7 +2,7 @@ module.exports = {
root: true, root: true,
parserOptions: { parserOptions: {
parser: 'babel-eslint', parser: 'babel-eslint',
sourceType: 'module' sourceType: 'module',
}, },
env: { env: {
browser: true, browser: true,
...@@ -12,80 +12,98 @@ module.exports = { ...@@ -12,80 +12,98 @@ module.exports = {
extends: ['plugin:vue/recommended', 'eslint:recommended'], extends: ['plugin:vue/recommended', 'eslint:recommended'],
// 全局变量 // 全局变量
globals: { globals: {
'gdp': true, gdp: true,
}, },
// add your custom rules here // add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue //it is base on https://github.com/vuejs/eslint-config-vue
rules: { rules: {
'no-console': 0, 'no-console': 0,
'no-debugger': 0, 'no-debugger': 0,
'comma-spacing': [2, { // 控制逗号前面没有空格,后面必须有空格 'comma-spacing': [
'before': false, 2,
'after': true {
}], // 控制逗号前面没有空格,后面必须有空格
'arrow-spacing': [2, { // 要求箭头函数前后有空格 before: false,
'before': true, after: true,
'after': true },
}], ],
'no-multi-spaces': 2,// 禁止使用多个空格, 'arrow-spacing': [
'no-spaced-func': 2,// 禁止 function 标识符和括号之间出现空格,this.getList () 报错 2,
'semi-spacing': [2, {// 强制分号之前不允许有空格 {
'before': false, // 要求箭头函数前后有空格
'after': true before: true,
}], after: true,
'space-infix-ops': 2,// 要求操作符前后必须有空格: 2 + 3 2 === 2 3 > 2 },
],
'no-multi-spaces': 2, // 禁止使用多个空格,
'no-spaced-func': 2, // 禁止 function 标识符和括号之间出现空格,this.getList () 报错
'semi-spacing': [
2,
{
// 强制分号之前不允许有空格
before: false,
after: true,
},
],
'space-infix-ops': 2, // 要求操作符前后必须有空格: 2 + 3 2 === 2 3 > 2
'spaced-comment': [2, 'always'], // 强制在注释中 // 或 /* 使用一致的空格 'spaced-comment': [2, 'always'], // 强制在注释中 // 或 /* 使用一致的空格
'array-bracket-spacing': [2, 'never'],// 指定数组的元素之间要以空格隔开(, 后面), never参数:[ 之后和 ] 之前不能带空格,always参数:[ 之后和 ] 之前必须带空格 'array-bracket-spacing': [2, 'never'], // 指定数组的元素之间要以空格隔开(, 后面), never参数:[ 之后和 ] 之前不能带空格,always参数:[ 之后和 ] 之前必须带空格
"space-before-blocks": 2, // if/function等的大括号之前需要有空格 'space-before-blocks': 2, // if/function等的大括号之前需要有空格
"vue/script-indent": ["error", 2, { // script标签缩进设置 'vue/script-indent': 'off',
"baseIndent": 1,
"switchCase": 0,
"ignores": []
}],
'no-undef-init': 2,// 禁止将变量初始化为 undefined,保存时会将let a = undefined变成let a 'no-undef-init': 2, // 禁止将变量初始化为 undefined,保存时会将let a = undefined变成let a
'semi': [2, 'always'],//强制结尾必须有分号; semi: [2, 'always'], //强制结尾必须有分号;
'prefer-const': 2,// 要求使用 const 声明那些声明后不再被修改的变量 'prefer-const': 2, // 要求使用 const 声明那些声明后不再被修改的变量
'quotes': [2, 'single'],//js中强制使用单引号 quotes: [2, 'single'], //js中强制使用单引号
'no-multiple-empty-lines': [2, {// 不允许多个空行,最多一行 'no-multiple-empty-lines': [
'max': 1 2,
}], {
'vue/order-in-components': ['error', { // 不允许多个空行,最多一行
'order': [ max: 1,
'el', },
'name', ],
'parent', 'vue/order-in-components': [
'functional', 'error',
['delimiters', 'comments'], {
['components', 'directives', 'filters'], order: [
'extends', 'el',
'mixins', 'name',
'inheritAttrs', 'parent',
'model', 'functional',
['props', 'propsData'], ['delimiters', 'comments'],
'data', ['components', 'directives', 'filters'],
'computed', 'extends',
'watch', 'mixins',
'LIFECYCLE_HOOKS', 'inheritAttrs',
'methods', 'model',
['template', 'render'], ['props', 'propsData'],
'renderError' 'data',
] 'computed',
}], 'watch',
'vue/attributes-order': ['error', { 'LIFECYCLE_HOOKS',
'order': [ 'methods',
'DEFINITION', ['template', 'render'],
'LIST_RENDERING', 'renderError',
'CONDITIONALS', ],
'RENDER_MODIFIERS', },
'GLOBAL', ],
'UNIQUE', 'vue/attributes-order': [
'TWO_WAY_BINDING', 'error',
'OTHER_DIRECTIVES', {
'OTHER_ATTR', order: [
'EVENTS', 'DEFINITION',
'CONTENT' 'LIST_RENDERING',
] 'CONDITIONALS',
}], 'RENDER_MODIFIERS',
} 'GLOBAL',
} 'UNIQUE',
'TWO_WAY_BINDING',
'OTHER_DIRECTIVES',
'OTHER_ATTR',
'EVENTS',
'CONTENT',
],
},
],
},
};
...@@ -92,10 +92,11 @@ export const messageSend = async (data) => { ...@@ -92,10 +92,11 @@ export const messageSend = async (data) => {
// diagnosis-list-new // diagnosis-list-new
export const getCountQuery = async () => { export const getCountQuery = async (params) => {
return request({ return request({
url: '/diagnose/admin/diagnose/countQuery', url: '/diagnose/admin/diagnose/countQuery',
method: 'get', method: 'post',
data: params
}); });
}; };
......
...@@ -401,6 +401,15 @@ ...@@ -401,6 +401,15 @@
<el-option v-for="item of sexList" :key="item.value" :label="item.label" :value="item.value"></el-option> <el-option v-for="item of sexList" :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="助诊医生地区">
<el-input
:value="`${formData.userProvince || ''}${formData.userCity || ''}${
formData.userCounty || ''
}${formData.userTown || ''}`"
class="set-width"
disabled
/>
</el-form-item>
<el-form-item label="助诊医生所在机构"> <el-form-item label="助诊医生所在机构">
<el-input <el-input
v-model="formData.userHospital" v-model="formData.userHospital"
...@@ -484,6 +493,15 @@ ...@@ -484,6 +493,15 @@
<el-option v-for="item of sexList" :key="item.value" :label="item.label" :value="item.value"></el-option> <el-option v-for="item of sexList" :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="接诊医生地区">
<el-input
:value="`${formData.doctorProvince || ''}${
formData.doctorCity || ''
}${formData.doctorCounty || ''}${formData.doctorTown || ''}`"
class="set-width"
disabled
/>
</el-form-item>
<el-form-item label="接诊医生所在机构"> <el-form-item label="接诊医生所在机构">
<el-input <el-input
v-model="formData.doctorHospital" v-model="formData.doctorHospital"
...@@ -963,254 +981,254 @@ ...@@ -963,254 +981,254 @@
</div> </div>
</template> </template>
<script> <script>
import uploadImg from '@/components/editor/upload-img'; import {
import uploadMusic from '@/components/editor/upload-music'; diagnoseUpdate,
import { getAdminDiagnose,
TYPE_LIST, getDiagnoseLog,
PAY_LIST, getDoctorList,
SOURCE_LIST, } from '@/api/diagnosis';
STATUS_LIST, import uploadImg from '@/components/editor/upload-img';
CAR_LIST, import uploadMusic from '@/components/editor/upload-music';
SEX_LIST, import {
RELATION_LIST, CAR_LIST,
D_S_LIST, D_S_LIST,
FOLLW_LIST, FOLLW_LIST,
} from '@/utils/constants'; PAY_LIST,
import { getBirth } from '@/utils/index'; RELATION_LIST,
import { SEX_LIST,
getAdminDiagnose, SOURCE_LIST,
getDoctorList, STATUS_LIST,
getDiagnoseLog, TYPE_LIST,
diagnoseUpdate, } from '@/utils/constants';
} from '@/api/diagnosis'; import { getBirth } from '@/utils/index';
const PAY_TYPE = { const PAY_TYPE = {
1: '自动付款', 1: '自动付款',
2: '手动付款', 2: '手动付款',
}; };
export default { export default {
components: { components: {
uploadImg, uploadImg,
uploadMusic, uploadMusic,
}, },
data() { data() {
return { return {
asd: 123, asd: 123,
diagnoseLogId: '', diagnoseLogId: '',
birthDisable: false, birthDisable: false,
noable: false, noable: false,
editorType: 1, // //1为编辑状态,2为查看 editorType: 1, // //1为编辑状态,2为查看
loading: true, loading: true,
btnDisable: false, btnDisable: false,
oldDiagnoseAdvice: '', // 旧的诊断建议 oldDiagnoseAdvice: '', // 旧的诊断建议
formData: { formData: {
// 预约单信息 // 预约单信息
diagnoseType: '', diagnoseType: '',
appointSource: '', appointSource: '',
createdTime: '', createdTime: '',
operateTime: '', operateTime: '',
doneTime: '', doneTime: '',
payType: '', payType: '',
crrsName: '', crrsName: '',
// 预约信息 // 预约信息
status: 1, status: 1,
operateUserName: '', operateUserName: '',
appointBeginTime: '', appointBeginTime: '',
appointEndTime: '', appointEndTime: '',
triageOperatorName: '', // 分诊人员姓名 triageOperatorName: '', // 分诊人员姓名
receptionOperatorName: '', // 接诊人员姓名 receptionOperatorName: '', // 接诊人员姓名
assistantBeginTime: '', // 助诊意向开始时间 assistantBeginTime: '', // 助诊意向开始时间
assistantEndTime: '', // 助诊意向结束时间 assistantEndTime: '', // 助诊意向结束时间
assistantRemark: '', // 助诊备注 assistantRemark: '', // 助诊备注
triageDepartmentId: '', // 分诊科室id, triageDepartmentId: '', // 分诊科室id,
triageDepartment: '', // 分诊科室名 triageDepartment: '', // 分诊科室名
triageRemark: '', // 分诊备注 triageRemark: '', // 分诊备注
receptionBeginTime: '', // 接诊意向开始时间 receptionBeginTime: '', // 接诊意向开始时间
receptionEndTime: '', // 接诊意向结束时间 receptionEndTime: '', // 接诊意向结束时间
// 患者信息 // 患者信息
patientName: '', patientName: '',
idCardType: 1, idCardType: 1,
idCard: '', idCard: '',
birthdayStr: '', birthdayStr: '',
birthday: '', birthday: '',
sex: 1, sex: 1,
patientMobilePhone: '', patientMobilePhone: '',
// 助诊信息 // 助诊信息
userName: '', userName: '',
userTitle: '', userTitle: '',
userHospital: '', userHospital: '',
userDepartment: '', userDepartment: '',
userMobile: '', userMobile: '',
patientRelation: '', patientRelation: '',
// crrsName: '', // 招募人 // crrsName: '', // 招募人
// 医生信息 // 医生信息
doctorName: '', doctorName: '',
doctorTitle: '', doctorTitle: '',
doctorHospital: '', doctorHospital: '',
doctorDepartment: '', doctorDepartment: '',
doctorMobile: '', doctorMobile: '',
doctorSource: '', doctorSource: '',
serviceFee: '', serviceFee: '',
outsideDoctor: '', // 站外医生姓名 outsideDoctor: '', // 站外医生姓名
// 问诊信息 // 问诊信息
diagnoseStage: '', diagnoseStage: '',
determineFlag: '', determineFlag: '',
diagnoseDisease: '', diagnoseDisease: '',
illnessDetail: '', illnessDetail: '',
illnessImageUrls: [], illnessImageUrls: [],
diagnoseAdvice: '', diagnoseAdvice: '',
illnessAudioUrls: [], illnessAudioUrls: [],
followFlag: 1, followFlag: 1,
drugFollow: '', drugFollow: '',
drugFollowStatus: '', drugFollowStatus: '',
checkFollow: '', checkFollow: '',
checkFollowStatus: '', checkFollowStatus: '',
otherFollowStatus: '', otherFollowStatus: '',
otherFollow: '', otherFollow: '',
remark: '', remark: '',
maritalStatus: 2, maritalStatus: 2,
createType: 1, // //创建方式1.系统创建 2.手动创建 createType: 1, // //创建方式1.系统创建 2.手动创建
// 备注信息 // 备注信息
patInFlag: '', // 患者是否在场 1是 2否 patInFlag: '', // 患者是否在场 1是 2否
valueFlag: '', // 是否有价值 1是 2否 valueFlag: '', // 是否有价值 1是 2否
worthlessReason: '', // 无价值原因 worthlessReason: '', // 无价值原因
otherRemark: '', // 其他备注 otherRemark: '', // 其他备注
// 结算信息 // 结算信息
receptionServiceFee: 0, // 接诊医生服务费单位分 receptionServiceFee: 0, // 接诊医生服务费单位分
receptionServiceFeeStr: '', // 接诊医生服务费展示字段 receptionServiceFeeStr: '', // 接诊医生服务费展示字段
receptionPayType: '', // 接诊医生付款方式1自动打款2手动打款 receptionPayType: '', // 接诊医生付款方式1自动打款2手动打款
receptionSettleTime: '', // 接诊医生结算时间 receptionSettleTime: '', // 接诊医生结算时间
assistantServiceFee: 0, // 助诊医生服务费单位分 assistantServiceFee: 0, // 助诊医生服务费单位分
assistantServiceFeeStr: '', // 助诊医生服务费展示字段 assistantServiceFeeStr: '', // 助诊医生服务费展示字段
assistantPayType: '', // 助诊医生付款方式1自动打款2手动打款 assistantPayType: '', // 助诊医生付款方式1自动打款2手动打款
assistantSettleTime: '', // 助诊医生结算时间 assistantSettleTime: '', // 助诊医生结算时间
// 录像信息 // 录像信息
vodList: { vodList: {
name: '', name: '',
url: '', url: '',
},
},
tyleList: TYPE_LIST,
payList: PAY_LIST,
sourceList: SOURCE_LIST,
statusList: STATUS_LIST,
carList: CAR_LIST,
sexList: SEX_LIST,
relationList: RELATION_LIST,
doctorSourceList: D_S_LIST,
followList: FOLLW_LIST,
doctorList: [],
rules: {
appointBeginTime: [
{ required: true, message: '请输入预约时间', trigger: 'change' },
],
patientName: [
{
required: true,
message: '请输入患姓名',
trigger: ['blur', 'change'],
},
{
min: 2,
max: 20,
message: '长度在 2 到 20 个字符',
trigger: ['blur', 'change'],
},
],
idCardType: [
{ required: true, message: '请选择证件类型', trigger: 'change' },
],
idCard: [
{ min: 18, message: '长度18个字符', trigger: 'blur' },
{ pattern: /[0-9A-Za-z]{6,24}$/, message: '只能是数字或字母' },
],
birth: [{ required: true, message: '请选择生日', trigger: 'change' }],
sex: [{ required: true, message: '请选择性别', trigger: 'change' }],
maritalStatus: [
{ required: true, message: '请选择婚否', trigger: 'change' },
],
patientMobilePhone: [
{
required: true,
message: '请输入患者电话',
trigger: ['blur', 'change'],
},
],
doctorName: [
{ required: true, message: '请选择接诊医生', trigger: 'change' },
],
serviceFee: [
{ required: false, message: '请输入医生服务费', trigger: 'change' },
{
pattern:
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
message: '请输入正确额格式,可保留两位小数',
},
],
diagnoseStage: [
{ required: true, message: '请选择初/复诊', trigger: 'change' },
],
determineFlag: [
{ required: true, message: '是否确诊', trigger: 'change' },
],
illnessDetail: [
{ required: true, message: '请输入病情描述', trigger: 'change' },
],
diagnoseAdvice: [
{ 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: { },
disabledData: (time) => { tyleList: TYPE_LIST,
if ( payList: PAY_LIST,
this.formData.appointEndTime != '' && sourceList: SOURCE_LIST,
this.formData.appointEndTime != null statusList: STATUS_LIST,
) { carList: CAR_LIST,
return ( sexList: SEX_LIST,
time.getTime() > new Date(this.formData.appointEndTime).getTime() relationList: RELATION_LIST,
); doctorSourceList: D_S_LIST,
} followList: FOLLW_LIST,
doctorList: [],
rules: {
appointBeginTime: [
{ required: true, message: '请输入预约时间', trigger: 'change' },
],
patientName: [
{
required: true,
message: '请输入患姓名',
trigger: ['blur', 'change'],
}, },
}, {
endDateOpt1: { min: 2,
disabledDate: (time) => { max: 20,
message: '长度在 2 到 20 个字符',
trigger: ['blur', 'change'],
},
],
idCardType: [
{ required: true, message: '请选择证件类型', trigger: 'change' },
],
idCard: [
{ min: 18, message: '长度18个字符', trigger: 'blur' },
{ pattern: /[0-9A-Za-z]{6,24}$/, message: '只能是数字或字母' },
],
birth: [{ required: true, message: '请选择生日', trigger: 'change' }],
sex: [{ required: true, message: '请选择性别', trigger: 'change' }],
maritalStatus: [
{ required: true, message: '请选择婚否', trigger: 'change' },
],
patientMobilePhone: [
{
required: true,
message: '请输入患者电话',
trigger: ['blur', 'change'],
},
],
doctorName: [
{ required: true, message: '请选择接诊医生', trigger: 'change' },
],
serviceFee: [
{ required: false, message: '请输入医生服务费', trigger: 'change' },
{
pattern:
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
message: '请输入正确额格式,可保留两位小数',
},
],
diagnoseStage: [
{ required: true, message: '请选择初/复诊', trigger: 'change' },
],
determineFlag: [
{ required: true, message: '是否确诊', trigger: 'change' },
],
illnessDetail: [
{ required: true, message: '请输入病情描述', trigger: 'change' },
],
diagnoseAdvice: [
{ 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: {
disabledData: (time) => {
if (
this.formData.appointEndTime != '' &&
this.formData.appointEndTime != null
) {
return ( return (
time.getTime() < new Date(this.formData.appointBeginTime).getTime() time.getTime() > new Date(this.formData.appointEndTime).getTime()
); );
}, }
}, },
// 操作日志数据 },
/* 元素结构 endDateOpt1: {
disabledDate: (time) => {
return (
time.getTime() < new Date(this.formData.appointBeginTime).getTime()
);
},
},
// 操作日志数据
/* 元素结构
{ {
operateTime: '2016-05-02', operateTime: '2016-05-02',
operateUserName: '赵丽颖', operateUserName: '赵丽颖',
...@@ -1218,233 +1236,233 @@ ...@@ -1218,233 +1236,233 @@
from: '助诊医生时间不匹配' from: '助诊医生时间不匹配'
} }
*/ */
logData: [], logData: [],
// 分页功能与产品沟通不做 // 分页功能与产品沟通不做
// logCurrentPage: 1, // logCurrentPage: 1,
// logTotalCount: 0 // logTotalCount: 0
}; };
},
computed: {
getReceptionPayType() {
return PAY_TYPE[this.formData.receptionPayType];
}, },
computed: { getAssistantPayType() {
getReceptionPayType() { return PAY_TYPE[this.formData.assistantPayType];
return PAY_TYPE[this.formData.receptionPayType];
},
getAssistantPayType() {
return PAY_TYPE[this.formData.assistantPayType];
},
illnessImageUrls() {
const m = this.formData.illnessImageUrls.filter((i) => {
console.log('---', i);
});
return m;
},
}, },
created() { illnessImageUrls() {
this.editorType = this.$route.query.editorType; const m = this.formData.illnessImageUrls.filter((i) => {
this.diagnoseLogId = this.$route.query.id; console.log('---', i);
this.search(); });
return m;
}, },
mounted() {}, },
methods: { created() {
search() { this.editorType = this.$route.query.editorType;
this.loading = true; this.diagnoseLogId = this.$route.query.id;
getAdminDiagnose({ this.search();
id: this.diagnoseLogId, },
}) mounted() {},
.then((res) => { methods: {
this.loading = false; search() {
if (res.code == '000000') { this.loading = true;
this.formData = res.data; getAdminDiagnose({
this.formData.price = this.priceFilter(this.formData.price); id: this.diagnoseLogId,
this.formData.serviceFee = this.priceFilter( })
this.formData.serviceFee .then((res) => {
); this.loading = false;
if (!this.formData.illnessImageUrls) { if (res.code == '000000') {
this.formData.illnessImageUrls = []; this.formData = res.data;
} else { this.formData.price = this.priceFilter(this.formData.price);
this.formData.illnessImageUrls = this.setObjectArr( this.formData.serviceFee = this.priceFilter(
this.formData.illnessImageUrls this.formData.serviceFee
); );
} if (!this.formData.illnessImageUrls) {
console.log( this.formData.illnessImageUrls = [];
'this.formData.illnessImageUrls', } else {
this.formData.illnessImageUrls = this.setObjectArr(
this.formData.illnessImageUrls this.formData.illnessImageUrls
); );
if (!this.formData.illnessAudioUrls) { }
this.formData.illnessAudioUrls = []; console.log(
} else { 'this.formData.illnessImageUrls',
this.formData.illnessAudioUrls = this.setObjectArr( this.formData.illnessImageUrls
this.formData.illnessAudioUrls );
); if (!this.formData.illnessAudioUrls) {
} this.formData.illnessAudioUrls = [];
if (this.formData.diagnoseAdvice) {
this.oldDiagnoseAdvice = this.formData.diagnoseAdvice;
this.formData.diagnoseAdvice = '';
}
if (!this.formData.sex) {
this.formData.sex = 1;
}
if (!this.formData.maritalStatus) {
this.formData.maritalStatus = 1;
}
} else { } else {
this.$message.info('请稍后重试'); this.formData.illnessAudioUrls = this.setObjectArr(
this.formData.illnessAudioUrls
);
} }
this.getDoctorList(); if (this.formData.diagnoseAdvice) {
this.queryOperationLogs(); this.oldDiagnoseAdvice = this.formData.diagnoseAdvice;
}) this.formData.diagnoseAdvice = '';
.catch(() => { }
if (!this.formData.sex) {
this.formData.sex = 1;
}
if (!this.formData.maritalStatus) {
this.formData.maritalStatus = 1;
}
} else {
this.$message.info('请稍后重试'); this.$message.info('请稍后重试');
}); }
}, this.getDoctorList();
getDoctorList() { this.queryOperationLogs();
this.loading = true;
getDoctorList({
diagnoseType: this.formData.diagnoseType,
}) })
.then((res) => { .catch(() => {
this.loading = false; this.$message.info('请稍后重试');
if (res.code == '000000') { });
this.doctorList = res.data; },
} else { getDoctorList() {
this.$message.info('请稍后重试'); this.loading = true;
} getDoctorList({
}) diagnoseType: this.formData.diagnoseType,
.catch(() => { })
this.loading = false; .then((res) => {
this.loading = false;
if (res.code == '000000') {
this.doctorList = res.data;
} else {
this.$message.info('请稍后重试'); this.$message.info('请稍后重试');
}); }
},
queryOperationLogs() {
getDiagnoseLog({
id: this.diagnoseLogId,
}) })
.catch(() => {
this.loading = false;
this.$message.info('请稍后重试');
});
},
queryOperationLogs() {
getDiagnoseLog({
id: this.diagnoseLogId,
})
.then((res) => {
if (res.code == '000000') {
this.logData = res.data;
}
// 非交互性功能接口不提示
})
.catch(() => {
this.loading = false;
});
},
// 预约开始时间选择时
continueBeginChange(val) {
if (this.formData.appointEndTime) {
if (
new Date(val).getTime() >
new Date(this.formData.appointEndTime).getTime()
) {
this.$message.info('开始时间要小于结束时间');
this.formData.appointBeginTime = '';
return;
}
}
},
// 预约结束时间选择时
continueEndChange(val) {
if (this.formData.appointBeginTime) {
if (
new Date(val).getTime() <=
new Date(this.formData.appointBeginTime).getTime()
) {
this.$message.info('结束时间要大于开始时间');
this.formData.appointEndTime = '';
return;
}
}
},
blurFn() {
if (
this.formData.idCardType == 1 &&
this.formData.idCard &&
this.formData.idCard.length == 18
) {
this.formData.birthdayStr = getBirth(this.formData.idCard);
this.birthDisable = true;
} else {
this.formData.birthdayStr = '';
this.birthDisable = false;
}
},
cancle() {
this.$router.back();
},
priceFilter(value) {
if (!value) return 0;
if (value) {
return value / 100;
}
},
setPrice(value) {
if (!value) return 0;
if (value) {
return value * 100;
}
},
doctorChanged(value) {
const selected = this.doctorList.find((item) => item.doctorId === value);
if (selected) {
this.formData.doctorId = value;
this.formData.doctorName = 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);
}
},
save() {
this.$refs.form.validate(() => {
this.formData.birthday = new Date(this.formData.birthdayStr);
// this.formData.birthday = this.formData.birthdayStr;
const params = JSON.parse(JSON.stringify(this.formData));
params.illnessImageUrls = this.$refs.imgComponent
? [...this.$refs.imgComponent.setNewArr()]
: [];
params.illnessAudioUrls = this.$refs.musicComponent
? [...this.$refs.musicComponent.setNewArr()]
: [];
params.price = this.setPrice(params.price);
params.serviceFee = this.setPrice(params.serviceFee);
if (!params.diagnoseAdvice) {
params.diagnoseAdvice = this.oldDiagnoseAdvice;
}
this.loading = true;
this.btnDisable = true;
diagnoseUpdate(params)
.then((res) => { .then((res) => {
this.loading = false;
this.btnDisable = false;
if (res.code == '000000') { if (res.code == '000000') {
this.logData = res.data; this.$message.success('保存成功');
this.$router.back();
} else {
this.$message({
message: res.message,
type: 'error',
});
} }
// 非交互性功能接口不提示
}) })
.catch(() => { .catch(() => {
this.btnDisable = false;
this.loading = false; this.loading = false;
}); });
}, });
// 预约开始时间选择时
continueBeginChange(val) {
if (this.formData.appointEndTime) {
if (
new Date(val).getTime() >
new Date(this.formData.appointEndTime).getTime()
) {
this.$message.info('开始时间要小于结束时间');
this.formData.appointBeginTime = '';
return;
}
}
},
// 预约结束时间选择时
continueEndChange(val) {
if (this.formData.appointBeginTime) {
if (
new Date(val).getTime() <=
new Date(this.formData.appointBeginTime).getTime()
) {
this.$message.info('结束时间要大于开始时间');
this.formData.appointEndTime = '';
return;
}
}
},
blurFn() {
if (
this.formData.idCardType == 1 &&
this.formData.idCard &&
this.formData.idCard.length == 18
) {
this.formData.birthdayStr = getBirth(this.formData.idCard);
this.birthDisable = true;
} else {
this.formData.birthdayStr = '';
this.birthDisable = false;
}
},
cancle() {
this.$router.back();
},
priceFilter(value) {
if (!value) return 0;
if (value) {
return value / 100;
}
},
setPrice(value) {
if (!value) return 0;
if (value) {
return value * 100;
}
},
doctorChanged(value) {
const selected = this.doctorList.find((item) => item.doctorId === value);
if (selected) {
this.formData.doctorId = value;
this.formData.doctorName = 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);
}
},
save() {
this.$refs.form.validate(() => {
this.formData.birthday = new Date(this.formData.birthdayStr);
// this.formData.birthday = this.formData.birthdayStr;
const params = JSON.parse(JSON.stringify(this.formData));
params.illnessImageUrls = this.$refs.imgComponent
? [...this.$refs.imgComponent.setNewArr()]
: [];
params.illnessAudioUrls = this.$refs.musicComponent
? [...this.$refs.musicComponent.setNewArr()]
: [];
params.price = this.setPrice(params.price);
params.serviceFee = this.setPrice(params.serviceFee);
if (!params.diagnoseAdvice) {
params.diagnoseAdvice = this.oldDiagnoseAdvice;
}
this.loading = true;
this.btnDisable = true;
diagnoseUpdate(params)
.then((res) => {
this.loading = false;
this.btnDisable = false;
if (res.code == '000000') {
this.$message.success('保存成功');
this.$router.back();
} else {
this.$message({
message: res.message,
type: 'error',
});
}
})
.catch(() => {
this.btnDisable = false;
this.loading = false;
});
});
},
// 格式话音频/视频数组
setObjectArr(array) {
const newArr = [];
array.forEach((element) => {
newArr.push({ from: 'all', url: element });
});
return newArr;
},
openPdf(item) {
window.open(item.url);
},
}, },
}; // 格式话音频/视频数组
setObjectArr(array) {
const newArr = [];
array.forEach((element) => {
newArr.push({ from: 'all', url: element });
});
return newArr;
},
openPdf(item) {
window.open(item.url);
},
},
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.diagnosis-list-content { .diagnosis-list-content {
...@@ -1519,4 +1537,9 @@ ...@@ -1519,4 +1537,9 @@
} }
} }
} }
/deep/ .el-input.is-disabled .el-input__inner,
/deep/ .el-textarea.is-disabled .el-textarea__inner {
color: #666;
}
</style> </style>
...@@ -390,7 +390,7 @@ ...@@ -390,7 +390,7 @@
<el-button <el-button
type="primary" type="primary"
class="submit-btn" class="submit-btn"
@click="getsearch" @click="getsearch()"
> >
搜索 搜索
</el-button> </el-button>
...@@ -602,464 +602,456 @@ ...@@ -602,464 +602,456 @@
</div> </div>
</template> </template>
<script> <script>
let vm = null; let vm = null;
import { updateDiagnosis, callAssistantDoctor } from '../../../utils/diagnosis'; import {
import { outbounNote } from '../../../api/diagnosis'; departmentAll,
import { base64decode } from '../../../utils/utils.js'; diagnoseExport,
import { DIAGNOS_LIST_NEW } from '@/utils/GeneralData/diagnosis-list-new'; diagnoseList,
import { getCountQuery,
TYPE_LIST, getDepartments,
IS_FLLOW, reMatchDoctor,
SOURCE_LIST, } from '@/api/diagnosis';
ALL_TAB_LIST, import { DIAGNOS_LIST_NEW } from '@/utils/GeneralData/diagnosis-list-new';
TRIAGE_TAB_LIST, import {
RECEPTION_TAB_LIST, ALL_TAB_LIST,
RUN_TAB_LIST, IS_FLLOW,
MATCH_TAB_LIST, MATCHING_LIST,
ORDER_PRICE, MATCH_TAB_LIST,
MATCHING_LIST, ORDER_PRICE,
} from '@/utils/constants'; RECEPTION_TAB_LIST,
import { RUN_TAB_LIST,
getCountQuery, SOURCE_LIST,
getDepartments, TRIAGE_TAB_LIST,
diagnoseExport, TYPE_LIST,
diagnoseList, } from '@/utils/constants';
departmentAll, import { outbounNote } from '../../../api/diagnosis';
reMatchDoctor, import { callAssistantDoctor, updateDiagnosis } from '../../../utils/diagnosis';
} from '@/api/diagnosis'; import { base64decode } from '../../../utils/utils.js';
import MatchComponent from '@/components/common/match'; import MatchComponent from '@/components/common/match';
import RefundComponent from '@/components/common/refund'; import RefundComponent from '@/components/common/refund';
import FollowupComponent from '../../../components/common/followup'; import TableSetComponent from '@/components/list/table-set-component';
import MatchingDoctor from '../../../components/common/matching-doctor'; import applyCancelComponent from '../../../components/common/applyCancel';
import DiagnosisComponent from '../../../components/common/diagnosis'; import AppointmentTime from '../../../components/common/appointment-time';
import CoordinatingDoctor from '../../../components/common/coordinating-doctor'; import CoordinatingDoctor from '../../../components/common/coordinating-doctor';
import DiagnosisDoctor from '../../../components/common/diagnosis-doctor'; import DiagnosisComponent from '../../../components/common/diagnosis';
import AppointmentTime from '../../../components/common/appointment-time'; import DiagnosisDoctor from '../../../components/common/diagnosis-doctor';
import DiagnosisTime from '../../../components/common/diagnosis-time'; import DiagnosisTime from '../../../components/common/diagnosis-time';
import RematchingDoctor from '../../../components/common/rematching-doctor'; import FollowupComponent from '../../../components/common/followup';
import TableSetComponent from '@/components/list/table-set-component'; import MatchingDoctor from '../../../components/common/matching-doctor';
import applyCancelComponent from '../../../components/common/applyCancel'; import RematchingDoctor from '../../../components/common/rematching-doctor';
import updateDeparId from '../../../components/common/updateDepartId'; import updateDeparId from '../../../components/common/updateDepartId';
export default { export default {
components: { components: {
TableSetComponent, TableSetComponent,
FollowupComponent, FollowupComponent,
MatchComponent, MatchComponent,
RefundComponent, RefundComponent,
MatchingDoctor, MatchingDoctor,
DiagnosisComponent, DiagnosisComponent,
CoordinatingDoctor, CoordinatingDoctor,
DiagnosisDoctor, DiagnosisDoctor,
AppointmentTime, AppointmentTime,
DiagnosisTime, DiagnosisTime,
RematchingDoctor, RematchingDoctor,
applyCancelComponent, applyCancelComponent,
updateDeparId, updateDeparId,
}, },
data() { data() {
return { return {
onlyChangeTime: false, onlyChangeTime: false,
saveFresh: true, saveFresh: true,
isUp: false, isUp: false,
endFlag: false, endFlag: false,
beginFlag: false, beginFlag: false,
loading: false, loading: false,
activeName: '99', activeName: '99',
createRangeTime: '', createRangeTime: '',
cancelRangeTime: '', cancelRangeTime: '',
orderRangeTime: '', orderRangeTime: '',
completeRangeTime: '', completeRangeTime: '',
assistantTime: '', assistantTime: '',
depList: [], depList: [],
tabrefresh: true, tabrefresh: true,
searchParam: { searchParam: {
id: '', id: '',
type: '', type: '',
operateName: '', operateName: '',
assistantVal: '', assistantVal: '',
receptionVal: '', receptionVal: '',
sort: null, sort: null,
triageDepartmentId: '', triageDepartmentId: '',
diagnoseType: '', // 预约问诊类型:1、音频 2、视频 3、图文 diagnoseType: '', // 预约问诊类型:1、音频 2、视频 3、图文
createdTimeBegin: '', createdTimeBegin: '',
createdTimeEnd: '', createdTimeEnd: '',
operateTimeBegin: '', operateTimeBegin: '',
operateTimeEnd: '', operateTimeEnd: '',
appointBeginTime: '', appointBeginTime: '',
appointEndTime: '', appointEndTime: '',
doneTimeBegin: '', doneTimeBegin: '',
doneTimeEnd: '', doneTimeEnd: '',
assistantBeginTime: '', assistantBeginTime: '',
assistantEndTime: '', assistantEndTime: '',
pageSize: 15, pageSize: 15,
pageNo: 1, pageNo: 1,
menuType: 1, // 菜单类型:1、all 2、运营 3、待分诊 4、待接诊 5、外呼 menuType: 1, // 菜单类型:1、all 2、运营 3、待分诊 4、待接诊 5、外呼
status: '', status: '',
price: '', price: '',
refundRemark: '', refundRemark: '',
orderPlacer: '', orderPlacer: '',
matchingWay: null, matchingWay: null,
consultRoad: null, consultRoad: null,
patientName: null, patientName: null,
},
noteList: [],
alltabslist: [],
tyleList: TYPE_LIST,
fllowList: IS_FLLOW,
sourceList: SOURCE_LIST,
priceList: ORDER_PRICE,
matchingWayList: MATCHING_LIST,
orderBusinessList: [
{
label: '中医实践',
value: 1,
}, },
noteList: [], {
alltabslist: [], label: '向上问诊',
tyleList: TYPE_LIST, value: 0,
fllowList: IS_FLLOW,
sourceList: SOURCE_LIST,
priceList: ORDER_PRICE,
matchingWayList: MATCHING_LIST,
orderBusinessList: [
{
label: '中医实践',
value: 1,
},
{
label: '向上问诊',
value: 0,
},
{
label: '报告解读',
value: 2,
},
],
nextPersonList: [
{
label: '基层医生',
value: 0,
},
{
label: '患者',
value: 1,
},
],
tabpaneList: [],
rematchingOptions: [], // 备注信息
Raw_tabpaneList: [],
tableData: [],
totalRows: 0,
timeClickFlag: true,
tableHeight: 500,
diagnoseLogId: 0,
toFollowReason: '',
matchVisible: false,
refundVisible: false,
followupVisible: false,
doctorVisible: false,
diagnosisVisible: false,
diaUpdateDeIdVisible: false,
coordinatingVisible: false,
diagnosisDoctorVisible: false,
diagnoseFlag: false,
rangeTimeData: '',
appointmentTimeVisible: false,
diagnosisTimeVisible: false,
rematchingVisible: false,
multipleSelection: [],
batchFlag: false,
dialogFormVisible: false,
bizType: 0,
diagnoseType: 0,
consultRoad: '',
doctorId: 0,
operateUserID: '',
triageDepartmentId: 0,
saveTableData: DIAGNOS_LIST_NEW,
pickerOptions1: {
disabledDate: (time) => {
return time.getTime() > new Date().getTime(); // 减去一天的时间代表可以选择同一天;
},
}, },
pickerOptions2: { {
disabledDate: (time) => { label: '报告解读',
return time.getTime() < new Date().getTime(); // 减去一天的时间代表可以选择同一天; value: 2,
},
}, },
timer: null, ],
fromType: 0, // 1或不传为为预约单列表 2为运营预约单列表 3为分诊台 4为接诊台 nextPersonList: [
doctorInfo: {}, {
userName: '', label: '基层医生',
userNamePhone: '', value: 0,
triageDepartment: '', },
departmentId: '', {
allTilst: [], label: '患者',
allList: {}, value: 1,
consultationTypeList: [ },
{ ],
label: '全部', tabpaneList: [],
value: '', rematchingOptions: [], // 备注信息
}, Raw_tabpaneList: [],
{ tableData: [],
label: '名医问诊', totalRows: 0,
value: 2, timeClickFlag: true,
}, tableHeight: 500,
{ diagnoseLogId: 0,
label: '极速问诊', toFollowReason: '',
value: 1, matchVisible: false,
}, refundVisible: false,
{ followupVisible: false,
label: '-', doctorVisible: false,
value: 0, diagnosisVisible: false,
}, diaUpdateDeIdVisible: false,
], coordinatingVisible: false,
}; diagnosisDoctorVisible: false,
}, diagnoseFlag: false,
watch: { rangeTimeData: '',
$route: { appointmentTimeVisible: false,
handler(newVal) { diagnosisTimeVisible: false,
if (newVal) { rematchingVisible: false,
this.isUp = false; multipleSelection: [],
this.reset(); batchFlag: false,
this.init(); dialogFormVisible: false,
} bizType: 0,
diagnoseType: 0,
consultRoad: '',
doctorId: 0,
operateUserID: '',
triageDepartmentId: 0,
saveTableData: DIAGNOS_LIST_NEW,
pickerOptions1: {
disabledDate: (time) => {
return time.getTime() > new Date().getTime(); // 减去一天的时间代表可以选择同一天;
},
},
pickerOptions2: {
disabledDate: (time) => {
return time.getTime() < new Date().getTime(); // 减去一天的时间代表可以选择同一天;
}, },
deep: true,
immediate: true,
}, },
timer: null,
fromType: 0, // 1或不传为为预约单列表 2为运营预约单列表 3为分诊台 4为接诊台
doctorInfo: {},
userName: '',
userNamePhone: '',
triageDepartment: '',
departmentId: '',
allTilst: [],
allList: {},
consultationTypeList: [
{
label: '全部',
value: '',
},
{
label: '名医问诊',
value: 2,
},
{
label: '极速问诊',
value: 1,
},
{
label: '-',
value: 0,
},
],
};
},
watch: {
$route: {
handler(newVal) {
if (newVal) {
this.isUp = false;
this.reset();
this.init();
}
},
deep: true,
immediate: true,
}, },
created() { },
vm = this; created() {
vm = this;
// this.getDep(); // this.getDep();
},
mounted() {
this.setTableHeight();
this.getOutboundNote();
this.departmentAll();
},
destroyed() {
clearInterval(this.timer);
},
methods: {
departmentAll() {
departmentAll().then((res) => {
if (res.code == '000000') {
this.allList = res.data || {};
this.showListALL();
}
});
},
showListALL() {
const arr = [];
const { departmentMapList, parentDepartmentList } = this.allList;
parentDepartmentList.map((item) => {
const obj = {
label: item.departmentName,
value: item.departmentId,
children: [],
};
departmentMapList.map((info) => {
if (info.parentDepartmentId === obj.value) {
const children = [];
info.diagnoseDepartmentRespList.map((detail) => {
const secondObj = {
label: detail.departmentName,
value: detail.departmentId,
text: '',
};
let secondChildren = '';
(detail.departmentDeseaseRespList || []).map((res) => {
secondChildren += res.deseaseName + ' ';
});
secondObj.text = secondChildren ? `(${secondChildren})` : '';
children.push(secondObj);
});
obj.children = children;
}
});
arr.push(obj);
});
this.allTilst = arr;
},
changeDepart() {
const checkedNodes = this.$refs['cascader'].getCheckedNodes();
if (checkedNodes.length > 0) {
this.searchParam.triageDepartmentId = checkedNodes[0].value;
} else {
this.searchParam.triageDepartmentId = '';
}
}, },
mounted() { changeStartTime(time) {
this.setTableHeight(); this.rangeTimeData = time
this.getOutboundNote(); ? time.time
this.departmentAll(); ? new Date(time.time).format('yyyy-MM-dd hh:mm:ss')
: ''
: '';
}, },
destroyed() { getTableData(val) {
this.saveTableData = val || [];
},
selectToggle() {
this.isUp = !this.isUp;
},
// 每隔1分钟对比数据
contrastData() {
clearInterval(this.timer); clearInterval(this.timer);
this.timer = setInterval(() => {
this.getTabs();
}, 60000);
// 600000
}, },
methods: { // 获取tabs数据
departmentAll() { getTabs() {
departmentAll().then((res) => { getCountQuery(this.searchParam).then((res) => {
if (res.code == '000000') { if (res.code == '000000') {
this.allList = res.data || {}; this.setTable(res.data);
this.showListALL(); this.tabrefresh = false;
} this.$nextTick(() => {
}); this.tabrefresh = true;
},
showListALL() {
const arr = [];
const { departmentMapList, parentDepartmentList } = this.allList;
parentDepartmentList.map((item) => {
const obj = {
label: item.departmentName,
value: item.departmentId,
children: [],
};
departmentMapList.map((info) => {
if (info.parentDepartmentId === obj.value) {
const children = [];
info.diagnoseDepartmentRespList.map((detail) => {
const secondObj = {
label: detail.departmentName,
value: detail.departmentId,
text: '',
};
let secondChildren = '';
(detail.departmentDeseaseRespList || []).map((res) => {
secondChildren += res.deseaseName + ' ';
});
secondObj.text = secondChildren ? `(${secondChildren})` : '';
children.push(secondObj);
});
obj.children = children;
}
}); });
arr.push(obj); return true;
});
this.allTilst = arr;
},
changeDepart() {
const checkedNodes = this.$refs['cascader'].getCheckedNodes();
if (checkedNodes.length > 0) {
this.searchParam.triageDepartmentId = checkedNodes[0].value;
} else {
this.searchParam.triageDepartmentId = '';
} }
}, });
changeStartTime(time) { },
this.rangeTimeData = time init() {
? time.time const fullPath = this.$route.fullPath;
? new Date(time.time).format('yyyy-MM-dd hh:mm:ss') let fromType = 1;
: '' if (fullPath.indexOf('?') > -1) {
: ''; const str = base64decode(fullPath.split('?')[1]);
}, if (str.indexOf('?')) {
getTableData(val) { fromType = str.split('=')[1];
this.saveTableData = val || [];
},
selectToggle() {
this.isUp = !this.isUp;
},
// 每隔1分钟对比数据
contrastData() {
clearInterval(this.timer);
this.timer = setInterval(() => {
this.getTabs();
}, 60000);
// 600000
},
// 获取tabs数据
getTabs() {
return getCountQuery().then((res) => {
if (res.code == '000000') {
this.setTable(res.data);
this.tabrefresh = false;
this.$nextTick(() => {
this.tabrefresh = true;
});
return true;
}
});
},
init() {
const fullPath = this.$route.fullPath;
let fromType = 1;
if (fullPath.indexOf('?') > -1) {
const str = base64decode(fullPath.split('?')[1]);
if (str.indexOf('?')) {
fromType = str.split('=')[1];
}
} }
// this.fromType = +(this.$route.query.fromType || 1); }
this.fromType = +fromType; // this.fromType = +(this.$route.query.fromType || 1);
this.fromType = +fromType;
this.searchParam.menuType = this.fromType || 1;
this.activeName = '99'; this.activeName = '99';
this.searchParam.status = ''; this.searchParam.status = '';
this.Raw_tabpaneList = []; this.Raw_tabpaneList = [];
this.getTabs().then((res) => { this.getsearch();
if (res) { // this.getTabs().then((res) => {
this.getsearch(); // if (res) {
} // this.getsearch();
}); // }
// });
this.contrastData(); this.contrastData();
}, },
getOutboundNote() { getOutboundNote() {
outbounNote().then((res) => { outbounNote().then((res) => {
if (res.code == '000000') { if (res.code == '000000') {
this.noteList = res.data || []; this.noteList = res.data || [];
} }
}); });
}, },
// 不同也main切换不同的tab // 不同也main切换不同的tab
setTable(data) { setTable(data) {
let tabs = ALL_TAB_LIST; let tabs = ALL_TAB_LIST;
switch (this.fromType) { switch (this.fromType) {
case 1: case 1:
tabs = ALL_TAB_LIST; tabs = ALL_TAB_LIST;
this.searchParam.menuType = 1;
break; break;
case 2: case 2:
tabs = RUN_TAB_LIST; tabs = RUN_TAB_LIST;
this.searchParam.menuType = 2;
break; break;
case 3: case 3:
tabs = TRIAGE_TAB_LIST; tabs = TRIAGE_TAB_LIST;
this.searchParam.menuType = 3;
break; break;
case 4: case 4:
tabs = RECEPTION_TAB_LIST; tabs = RECEPTION_TAB_LIST;
this.searchParam.menuType = 4;
break; break;
case 5: case 5:
tabs = MATCH_TAB_LIST; tabs = MATCH_TAB_LIST;
this.searchParam.menuType = 5;
break; break;
default: default:
tabs = ALL_TAB_LIST; tabs = ALL_TAB_LIST;
this.searchParam.menuType = 1;
break;
}
let count = 0; break;
for (let i = 0; i < tabs.length; i++) { }
const index = data.findIndex((val) => { let count = 0;
return val.status == tabs[i].active; for (let i = 0; i < tabs.length; i++) {
}); const index = data.findIndex((val) => {
if (index > 0) { return val.status == tabs[i].active;
count = count + data[index].dgCount; });
let isdot = false; if (index > -1) {
if (this.Raw_tabpaneList.length > 0) { count = count + data[index].dgCount;
isdot = let isdot = false;
data[index].dgCount > this.Raw_tabpaneList[i].dgCount if (this.Raw_tabpaneList.length > 0) {
? true isdot =
: false; data[index].dgCount > this.Raw_tabpaneList[i].dgCount
} ? true
tabs[i] = { : false;
...tabs[i],
dgCount: data[index].dgCount,
isdot: isdot,
};
} }
tabs[i] = {
...tabs[i],
dgCount: data[index].dgCount,
isdot: isdot,
};
} }
tabs[0].dgCount = count; }
this.tabpaneList = tabs; tabs[0].dgCount = count;
if (this.Raw_tabpaneList.length == 0) { console.log('tabs', JSON.stringify(tabs));
this.Raw_tabpaneList = JSON.parse(JSON.stringify(tabs)); this.tabpaneList = tabs;
} if (this.Raw_tabpaneList.length == 0) {
}, this.Raw_tabpaneList = JSON.parse(JSON.stringify(tabs));
}
},
resetPage() { resetPage() {
this.searchParam.pageSize = 15; this.searchParam.pageSize = 15;
this.searchParam.pageNo = 1; this.searchParam.pageNo = 1;
}, },
// 设置table的高度 // 设置table的高度
setTableHeight() { setTableHeight() {
setTimeout(() => { setTimeout(() => {
this.$nextTick(() => { this.$nextTick(() => {
if ( if (
document.getElementsByClassName('from-box') && document.getElementsByClassName('from-box') &&
document.getElementsByClassName('from-box')[0].clientHeight document.getElementsByClassName('from-box')[0].clientHeight
) { ) {
const height = const height =
window.innerHeight - window.innerHeight -
50 - 50 -
140 - 140 -
10 - 10 -
160 - 160 -
document.getElementsByClassName('from-box')[0].clientHeight; document.getElementsByClassName('from-box')[0].clientHeight;
if (height > 300) { if (height > 300) {
this.tableHeight = height; this.tableHeight = height;
}
} }
});
}, 20);
},
// tab切换
handleClick(val) {
for (let i = 0; i < this.tabpaneList.length; i++) {
if (this.tabpaneList[i].active == val.paneName) {
this.tabpaneList[i].isdot = false;
this.Raw_tabpaneList[i] = this.tabpaneList[i];
} }
});
}, 20);
},
// tab切换
handleClick(val) {
for (let i = 0; i < this.tabpaneList.length; i++) {
if (this.tabpaneList[i].active == val.paneName) {
this.tabpaneList[i].isdot = false;
this.Raw_tabpaneList[i] = this.tabpaneList[i];
} }
this.searchParam.status = }
val.paneName == 99 this.searchParam.status =
? '' val.paneName == 99
: val.paneName == 101 || val.paneName == 102 ? ''
? '21' : val.paneName == 101 || val.paneName == 102
: val.paneName; ? '21'
if ( : val.paneName;
(this.fromType == 5 || this.fromType == 1) && if (
this.searchParam.status (this.fromType == 5 || this.fromType == 1) &&
) { this.searchParam.status
if (val.paneName == 101) { ) {
this.searchParam.hasToFollowReason = 1; if (val.paneName == 101) {
} else if (val.paneName == 102) { this.searchParam.hasToFollowReason = 1;
this.searchParam.hasToFollowReason = 2; } else if (val.paneName == 102) {
} else { this.searchParam.hasToFollowReason = 2;
if (
Object.prototype.hasOwnProperty.call(
this.searchParam,
'hasToFollowReason'
)
) {
delete this.searchParam.hasToFollowReason;
}
}
} else { } else {
if ( if (
Object.prototype.hasOwnProperty.call( Object.prototype.hasOwnProperty.call(
...@@ -1070,444 +1062,461 @@ ...@@ -1070,444 +1062,461 @@
delete this.searchParam.hasToFollowReason; delete this.searchParam.hasToFollowReason;
} }
} }
this.getsearch(); } else {
this.saveFresh = false; if (
this.$nextTick(() => { Object.prototype.hasOwnProperty.call(
this.saveFresh = true; this.searchParam,
}); 'hasToFollowReason'
}, )
// 初始化时间
initTime() {
const {
createRangeTime,
cancelRangeTime,
orderRangeTime,
completeRangeTime,
assistantTime,
} = this;
this.setTime('createdTimeBegin', 'createdTimeEnd', createRangeTime);
this.setTime('cancelTimeBegin', 'cancelTimeEnd', cancelRangeTime);
this.setTime('appointBeginTime', 'appointEndTime', orderRangeTime);
this.setTime('doneTimeBegin', 'doneTimeEnd', completeRangeTime);
this.setTime('assistantBeginTime', 'assistantEndTime', assistantTime);
},
/**
* btime开始时间
* etime结束时间
* arrtime 时间数组
*/
setTime(btime, etime, arrtime) {
arrtime = arrtime || ['', ''];
this.searchParam[btime] = arrtime[0];
this.searchParam[etime] = arrtime[1];
},
// 重置页面后搜索
getsearch() {
this.resetPage();
this.search(true);
},
sortfunc(data) {
// ascending 升序
// descending 降序
if (data.prop == 'appointBeginTime' && data.order == 'ascending') {
this.searchParam.sort = 1;
} else if (
data.prop == 'appointBeginTime' &&
data.order == 'descending'
) {
this.searchParam.sort = 2;
} else if (
data.prop == 'assistantBeginTime' &&
data.order == 'ascending'
) {
this.searchParam.sort = 3;
} else if (
data.prop == 'assistantBeginTime' &&
data.order == 'descending'
) { ) {
this.searchParam.sort = 4; delete this.searchParam.hasToFollowReason;
} else {
this.searchParam.sort = null;
}
this.search(true);
},
search(isTabs) {
this.loading = true;
if (!isTabs) {
this.getTabs();
} }
this.initTime(); }
this.getsearch(true);
this.saveFresh = false;
this.$nextTick(() => {
this.saveFresh = true;
});
},
// 初始化时间
initTime() {
const {
createRangeTime,
cancelRangeTime,
orderRangeTime,
completeRangeTime,
assistantTime,
} = this;
this.setTime('createdTimeBegin', 'createdTimeEnd', createRangeTime);
this.setTime('cancelTimeBegin', 'cancelTimeEnd', cancelRangeTime);
this.setTime('appointBeginTime', 'appointEndTime', orderRangeTime);
this.setTime('doneTimeBegin', 'doneTimeEnd', completeRangeTime);
this.setTime('assistantBeginTime', 'assistantEndTime', assistantTime);
},
/**
* btime开始时间
* etime结束时间
* arrtime 时间数组
*/
setTime(btime, etime, arrtime) {
arrtime = arrtime || ['', ''];
this.searchParam[btime] = arrtime[0];
this.searchParam[etime] = arrtime[1];
},
// 重置页面后搜索
getsearch(isTabs) {
this.resetPage();
this.search(isTabs);
},
sortfunc(data) {
// ascending 升序
// descending 降序
if (data.prop == 'appointBeginTime' && data.order == 'ascending') {
this.searchParam.sort = 1;
} else if (
data.prop == 'appointBeginTime' &&
data.order == 'descending'
) {
this.searchParam.sort = 2;
} else if (
data.prop == 'assistantBeginTime' &&
data.order == 'ascending'
) {
this.searchParam.sort = 3;
} else if (
data.prop == 'assistantBeginTime' &&
data.order == 'descending'
) {
this.searchParam.sort = 4;
} else {
this.searchParam.sort = null;
}
this.search(true);
},
search(isTabs) {
this.loading = true;
if (!isTabs) {
this.getTabs();
}
this.initTime();
diagnoseList(this.searchParam).then((res) => { diagnoseList(this.searchParam).then((res) => {
this.loading = false;
if (res.code == '000000') {
this.tableData = (res.data.list || []).map((item) => {
return {
...item,
price: item.price > 0 ? item.price / 100 : 0,
};
});
this.totalRows = res.data.allSize;
}
});
},
// 获取科室
getDep() {
getDepartments().then((res) => {
if (res.code === '000000') {
this.depList = [
{
id: '',
name: '全部',
},
...res.data,
];
}
});
},
// 重置
reset() {
this.createRangeTime = '';
this.cancelRangeTime = '';
this.orderRangeTime = '';
this.completeRangeTime = '';
this.assistantTime = '';
this.searchParam = Object.assign(this.searchParam, {
id: '',
type: '',
operateName: '',
assistantVal: '',
receptionVal: '',
triageDepartmentId: '',
price: '',
refundRemark: '',
orderPlacer: '',
matchingWay: null,
diagnoseType: '', // 预约问诊类型:1、音频 2、视频 3、图文
createdTimeBegin: '',
createdTimeEnd: '',
operateTimeBegin: '',
operateTimeEnd: '',
sort: null,
appointBeginTime: '',
appointEndTime: '',
doneTimeBegin: '',
doneTimeEnd: '',
assistantBeginTime: '',
assistantEndTime: '',
inNewTimeObj: {},
consultRoad: null,
patientName: null,
});
},
// 导出
download() {
this.initTime();
const params = this.searchParam;
diagnoseExport(params)
.then((res) => {
this.loading = false; this.loading = false;
if (res.code == '000000') { if (res.code == '000000') {
this.tableData = (res.data.list || []).map((item) => { this.$confirm('将于24小时内导出成功,是否跳转下载列表页?', '提示', {
return { confirmButtonText: '确定',
...item, cancelButtonText: '取消',
price: item.price > 0 ? item.price / 100 : 0, type: 'warning',
}; }).then(() => {
this.$router.push('/down-list');
}); });
this.totalRows = res.data.allSize;
} }
})
.catch((err) => {
console.log(err);
}); });
}, },
// 获取科室 // 设为待问诊
getDep() { witeDiagnose(row) {
getDepartments().then((res) => { this.appointmentTimeVisible = true;
if (res.code === '000000') { this.diagnoseLogId = row.diagnoseLogId;
this.depList = [ this.bizType = 11;
{ },
id: '', // 更换运营
name: '全部', changeRun(row) {
}, this.matchVisible = true;
...res.data, this.diagnoseLogId = row.diagnoseLogId;
]; this.batchFlag = false;
this.operateUserID = row.operateUserId;
},
// 查看详情/编辑详情
goDetail(row, flag) {
const target = this.$refs.target;
const { origin } = window.location;
const editorType = flag ? 1 : 2;
const u = `${origin}/consultation/pica-admin-consultation/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.toFollowReason = row.toFollowReason;
this.diagnoseLogId = row.diagnoseLogId;
},
// 申请取消
applyCancel(row) {
this.diagnoseLogId = row.diagnoseLogId;
this.dialogFormVisible = true;
},
// 设为待匹配医生
waitMatchDot(row) {
this.doctorData = row;
this.diagnoseLogId = row.diagnoseLogId;
this.userName = row.userName;
this.diagnoseType = row.diagnoseType;
this.consultRoad = row.consultRoad;
this.userNamePhone = row.userMobile;
this.triageDepartment = row.triageDepartment;
this.departmentId = row.triageDepartmentId;
this.patientName = row.patientName;
this.patientMobilePhone = row.patientMobilePhone;
this.bizType = 5;
if (this.diagnoseType == '4') {
this.$confirm('是否重新匹配医生', '提示', {
confirmButtonText: '是',
cancelButtonText: '否',
type: 'warning',
}).then(() => {
this.loading = true;
reMatchDoctor(this.diagnoseLogId)
.then(() => {
this.loading = false;
this.search(false);
})
.catch(() => {
this.loading = false;
});
});
} else {
this.diagnosisTimeVisible = true;
}
// }
},
// 修改科室
updateDepartId(row) {
console.log(row);
this.diagnoseLogId = row.diagnoseLogId;
this.userName = row.userName;
this.userNamePhone = row.userMobile;
this.triageDepartment = row.triageDepartment;
this.diaUpdateDeIdVisible = true;
},
callAssistant(row) {
const i =
row.consultRoadType == 2 ? '确定呼叫居民吗?' : '确定呼叫助诊医生吗?';
this.$confirm(i, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
callAssistantDoctor(row.diagnoseLogId).then((res) => {
if (res.code == '000000') {
vm.$message.success('呼叫成功');
} else {
vm.$message.error(res.message);
} }
}); });
}, });
// 重置 },
reset() { // 发送消息
this.createRangeTime = ''; sendMessage(row) {
this.cancelRangeTime = ''; // this.$router.push({
this.orderRangeTime = ''; // path: '/diagnosis-im',
this.completeRangeTime = ''; // query: { tid: row.imTeamId },
this.assistantTime = ''; // });
this.searchParam = Object.assign(this.searchParam, {
id: '', const target = this.$refs.target;
type: '', const { origin } = window.location;
operateName: '', const u = `${origin}/consultation/pica-admin-consultation/diagnosis-im?tid=${row.imTeamId}`;
assistantVal: '', target.setAttribute('href', u);
receptionVal: '', target.click();
triageDepartmentId: '', },
price: '',
refundRemark: '', // 加入问诊
orderPlacer: '', joinDiagnose(row) {
matchingWay: null, this.$confirm('确定加入问诊吗?', '提示', {
diagnoseType: '', // 预约问诊类型:1、音频 2、视频 3、图文 confirmButtonText: '确定',
createdTimeBegin: '', cancelButtonText: '取消',
createdTimeEnd: '', type: 'warning',
operateTimeBegin: '', }).then(() => {
operateTimeEnd: '', this.clearSession();
sort: null,
appointBeginTime: '', // this.$router.push({
appointEndTime: '', // path: "/diagnosis-live",
doneTimeBegin: '', // query: { tid: row.imTeamId, diagnoseLogId: row.diagnoseLogId },
doneTimeEnd: '', // })
assistantBeginTime: '', const newpage = this.$router.resolve({
assistantEndTime: '', path: '/diagnosis-live',
inNewTimeObj: {}, query: { tid: row.imTeamId, diagnoseLogId: row.diagnoseLogId },
consultRoad: null,
patientName: null,
}); });
}, window.open(newpage.href, '_blank');
// 导出 });
download() { },
this.initTime(); // 匹配运营
const params = this.searchParam; matchRun(row) {
diagnoseExport(params) this.$confirm('确定匹配并跟进该预约单?', '确定匹配?', {
.then((res) => { confirmButtonText: '确定',
this.loading = false; cancelButtonText: '取消',
type: 'warning',
}).then(() => {
const req = {
id: row.diagnoseLogId,
bizType: 3,
};
updateDiagnosis(req)
.then(function (res) {
if (res.code == '000000') { if (res.code == '000000') {
this.$confirm('将于24小时内导出成功,是否跳转下载列表页?', '提示', { vm.search(false);
confirmButtonText: '确定', } else {
cancelButtonText: '取消', vm.$message.error(res.message);
type: 'warning',
}).then(() => {
this.$router.push('/down-list');
});
} }
}) })
.catch((err) => { .catch(function (error) {
console.log(err); vm.$message.error(error);
});
},
// 设为待问诊
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) {
const target = this.$refs.target;
const { origin } = window.location;
const editorType = flag ? 1 : 2;
const u = `${origin}/consultation/pica-admin-consultation/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.toFollowReason = row.toFollowReason;
this.diagnoseLogId = row.diagnoseLogId;
},
// 申请取消
applyCancel(row) {
this.diagnoseLogId = row.diagnoseLogId;
this.dialogFormVisible = true;
},
// 设为待匹配医生
waitMatchDot(row) {
this.doctorData = row;
this.diagnoseLogId = row.diagnoseLogId;
this.userName = row.userName;
this.diagnoseType = row.diagnoseType;
this.consultRoad = row.consultRoad;
this.userNamePhone = row.userMobile;
this.triageDepartment = row.triageDepartment;
this.departmentId = row.triageDepartmentId;
this.patientName = row.patientName;
this.patientMobilePhone = row.patientMobilePhone;
this.bizType = 5;
if (this.diagnoseType == '4') {
this.$confirm('是否重新匹配医生', '提示', {
confirmButtonText: '是',
cancelButtonText: '否',
type: 'warning',
}).then(() => {
this.loading = true;
reMatchDoctor(this.diagnoseLogId)
.then(() => {
this.loading = false;
this.search(false);
})
.catch(() => {
this.loading = false;
});
}); });
} else { });
this.diagnosisTimeVisible = true; },
} // 设为待分诊
waitDiagnose(row) {
// } this.diagnosisTimeVisible = true;
}, this.diagnoseLogId = row.diagnoseLogId;
// 修改科室 this.bizType = 5;
updateDepartId(row) { },
console.log(row); // 设为待协调医生
this.diagnoseLogId = row.diagnoseLogId; waitHzeDot(row) {
this.userName = row.userName; this.coordinatingVisible = true;
this.userNamePhone = row.userMobile; this.diagnoseLogId = row.diagnoseLogId;
this.triageDepartment = row.triageDepartment; this.bizType = 8;
this.diaUpdateDeIdVisible = true; },
}, // 设为待确认时间
callAssistant(row) { waitMatchTime(row, onlyChangeTime) {
const i = row.consultRoadType == 2 ? '确定呼叫居民吗?' : '确定呼叫助诊医生吗?'; this.onlyChangeTime = onlyChangeTime;
this.$confirm(i, '提示', { this.doctorInfo = row;
this.rangeTimeData = row.assistantBeginTime;
this.diagnoseFlag = true;
this.diagnosisDoctorVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.diagnoseType = row.diagnoseType;
this.consultRoad = row.consultRoad;
if (row.doctorId == 0) {
this.doctorId = '';
} else {
this.doctorId = row.doctorId;
}
// this.$nextTick(() => {
// this.diagnoseFlag = true;
// this.diagnosisDoctorVisible = true;
// });
},
// 重新匹配医生
reMatchDot(row, type) {
this.rematchingOptions = [
'接诊医生爽约',
'上级医生日程改变,提前取消',
'操作失误,重新匹配医生',
'助诊医生爽约',
];
// this.rematchingOptions=
// this.options=
this.rematchingVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = type;
},
// 修改时间
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: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning',
}).then(() => { }
callAssistantDoctor(row.diagnoseLogId).then(res => { ).then(() => {
const req = {
id: row.diagnoseLogId,
bizType: 13,
};
updateDiagnosis(req)
.then(function (res) {
if (res.code == '000000') { if (res.code == '000000') {
vm.$message.success('呼叫成功'); // this.cancel();
}else{ vm.search(false);
} else {
vm.$message.error(res.message); vm.$message.error(res.message);
} }
})
.catch(function (error) {
vm.$message.error(error);
}); });
}); });
}, },
// 发送消息 // 设置科室
sendMessage(row) { setOffice(row) {
this.$router.push({ this.doctorVisible = true;
path: '/diagnosis-im', this.diagnoseLogId = row.diagnoseLogId;
query: { tid: row.imTeamId }, this.bizType = 15;
}); this.triageDepartmentId = row.triageDepartmentId;
}, },
handleSizeChange(value) {
// 加入问诊 this.searchParam.pageSize = value;
joinDiagnose(row) {
this.$confirm('确定加入问诊吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
this.clearSession();
// this.$router.push({ this.search(true);
// path: "/diagnosis-live", },
// query: { tid: row.imTeamId, diagnoseLogId: row.diagnoseLogId }, handleCurrentChange(value) {
// }) this.searchParam.pageNo = value;
const newpage = this.$router.resolve({ this.search(true);
path: '/diagnosis-live', },
query: { tid: row.imTeamId, diagnoseLogId: row.diagnoseLogId }, // 清除直播时间相关的seession
}); clearSession() {
window.open(newpage.href, '_blank'); sessionStorage.removeItem('TIME_askTime');
}); sessionStorage.removeItem('TIME_answerTime');
}, sessionStorage.removeItem('TIME_useTime');
// 匹配运营 sessionStorage.removeItem('TIME_loseTime');
matchRun(row) { },
this.$confirm('确定匹配并跟进该预约单?', '确定匹配?', { // 取消预约
confirmButtonText: '确定', // cancelBtn(row) {},
cancelButtonText: '取消', // 批量设置运营
batchSetOperator() {
if (this.multipleSelection.length == 0) {
this.$message({
message: '请先选择要操作的数据',
type: 'warning', type: 'warning',
}).then(() => {
const req = {
id: row.diagnoseLogId,
bizType: 3,
};
updateDiagnosis(req)
.then(function (res) {
if (res.code == '000000') {
vm.search(false);
} else {
vm.$message.error(res.message);
}
})
.catch(function (error) {
vm.$message.error(error);
});
});
},
// 设为待分诊
waitDiagnose(row) {
this.diagnosisTimeVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 5;
},
// 设为待协调医生
waitHzeDot(row) {
this.coordinatingVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 8;
},
// 设为待确认时间
waitMatchTime(row, onlyChangeTime) {
this.onlyChangeTime = onlyChangeTime;
this.doctorInfo = row;
this.rangeTimeData = row.assistantBeginTime;
this.diagnoseFlag = true;
this.diagnosisDoctorVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.diagnoseType = row.diagnoseType;
this.consultRoad = row.consultRoad;
if (row.doctorId == 0) {
this.doctorId = '';
} else {
this.doctorId = row.doctorId;
}
// this.$nextTick(() => {
// this.diagnoseFlag = true;
// this.diagnosisDoctorVisible = true;
// });
},
// 重新匹配医生
reMatchDot(row, type) {
this.rematchingOptions = [
'接诊医生爽约',
'上级医生日程改变,提前取消',
'操作失误,重新匹配医生',
'助诊医生爽约',
];
// this.rematchingOptions=
// this.options=
this.rematchingVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = type;
},
// 修改时间
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(() => {
const req = {
id: row.diagnoseLogId,
bizType: 13,
};
updateDiagnosis(req)
.then(function (res) {
if (res.code == '000000') {
// this.cancel();
vm.search(false);
} else {
vm.$message.error(res.message);
}
})
.catch(function (error) {
vm.$message.error(error);
});
}); });
}, return;
// 设置科室 }
setOffice(row) {
this.doctorVisible = true;
this.diagnoseLogId = row.diagnoseLogId;
this.bizType = 15;
this.triageDepartmentId = row.triageDepartmentId;
},
handleSizeChange(value) {
this.searchParam.pageSize = value;
this.search(true);
},
handleCurrentChange(value) {
this.searchParam.pageNo = value;
this.search(true);
},
// 清除直播时间相关的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.matchVisible = true;
this.batchFlag = true; this.batchFlag = true;
}, },
patientNameChange(value) { patientNameChange(value) {
this.searchParam.patientName = value ? value : null; this.searchParam.patientName = value ? value : null;
},
}, },
}; },
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.diagnosis-list-content { .diagnosis-list-content {
...@@ -1516,24 +1525,29 @@ ...@@ -1516,24 +1525,29 @@
padding: 10px; padding: 10px;
background: #fff; background: #fff;
overflow: hidden !important; overflow: hidden !important;
.title { .title {
height: 50px; height: 50px;
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
align-items: center; align-items: center;
} }
.form-container { .form-container {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.form-li { .form-li {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
// justify-content: space-between; // justify-content: space-between;
} }
.form-btn { .form-btn {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: flex-start; justify-content: flex-start;
.form-btn-li { .form-btn-li {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
...@@ -1541,6 +1555,7 @@ ...@@ -1541,6 +1555,7 @@
} }
} }
} }
.select-bottom { .select-bottom {
height: 50px; height: 50px;
cursor: pointer; cursor: pointer;
...@@ -1549,6 +1564,7 @@ ...@@ -1549,6 +1564,7 @@
align-items: center; align-items: center;
color: #0d9078; color: #0d9078;
} }
.btn-wrap { .btn-wrap {
text-align: right; text-align: right;
} }
...@@ -1557,6 +1573,7 @@ ...@@ -1557,6 +1573,7 @@
margin-bottom: 10px; margin-bottom: 10px;
} }
} }
.component-content { .component-content {
padding: 10px; padding: 10px;
background: #fff; background: #fff;
...@@ -1569,6 +1586,7 @@ ...@@ -1569,6 +1586,7 @@
right: 5px; right: 5px;
top: 10px; top: 10px;
} }
body .el-table th.gutter { body .el-table th.gutter {
display: table-cell !important; display: table-cell !important;
} }
...@@ -1576,6 +1594,7 @@ body .el-table th.gutter { ...@@ -1576,6 +1594,7 @@ body .el-table th.gutter {
body .el-table colgroup.gutter { body .el-table colgroup.gutter {
display: table-cell !important; display: table-cell !important;
} }
.el-table .warning-row { .el-table .warning-row {
background: oldlace; background: oldlace;
} }
......
...@@ -146,137 +146,137 @@ ...@@ -146,137 +146,137 @@
</div> </div>
</template> </template>
<script> <script>
import dayjs from 'dayjs'; import FullCalendar from '@fullcalendar/vue';
import FullCalendar from '@fullcalendar/vue'; import dayGridPlugin from '@fullcalendar/daygrid';
import dayGridPlugin from '@fullcalendar/daygrid'; import interactionPlugin from '@fullcalendar/interaction';
import timeGridPlugin from '@fullcalendar/timegrid'; import timeGridPlugin from '@fullcalendar/timegrid';
import interactionPlugin from '@fullcalendar/interaction'; import {
import { dutyRosterQuery,
dutyRosterQuery, getDoctorInfo,
saveDutyRoster, getLevel,
getLevel, getLevelAndDayCount,
getDoctorInfo, saveDutyRoster,
saveLevelAndDayCount, saveLevelAndDayCount,
getLevelAndDayCount, } from '@/api/serviceSchedule';
} from '@/api/serviceSchedule'; import dayjs from 'dayjs';
export default { export default {
name: 'Scheduing', name: 'Scheduing',
components: { components: {
FullCalendar, FullCalendar,
}, },
data() { data() {
return { return {
maxPreNum: '', maxPreNum: '',
chooseList: true, chooseList: true,
id: '', id: '',
doctorId: '', doctorId: '',
schedulingTypeValue: {}, schedulingTypeValue: {},
schedulingType: 1, // 1 新增 2 编辑 3 查看 schedulingType: 1, // 1 新增 2 编辑 3 查看
createList: [], createList: [],
listDate: [], listDate: [],
week: 1, // 1:当前周 2:上一周 3:下一周 week: 1, // 1:当前周 2:上一周 3:下一周
currentIndex: 3, currentIndex: 3,
haveWeek: [1], haveWeek: [1],
businessHours: true, businessHours: true,
calendarOptions: { calendarOptions: {
// 引入的插件,比如fullcalendar/daygrid,fullcalendar/timegrid引入后才可显示月,周,日 // 引入的插件,比如fullcalendar/daygrid,fullcalendar/timegrid引入后才可显示月,周,日
plugins: [dayGridPlugin, interactionPlugin, timeGridPlugin], plugins: [dayGridPlugin, interactionPlugin, timeGridPlugin],
initialView: 'timeGridWeek', // 默认为那个视图(月:dayGridMonth,周:timeGridWeek,日:timeGridDay) initialView: 'timeGridWeek', // 默认为那个视图(月:dayGridMonth,周:timeGridWeek,日:timeGridDay)
selectable: true, selectable: true,
selectMirror: true, selectMirror: true,
selectAllow: this.selectAllow, selectAllow: this.selectAllow,
selectOverlap: false, selectOverlap: false,
select: this.selectInfo, select: this.selectInfo,
selectMinDistance: 0, selectMinDistance: 0,
eventOverlap: false, eventOverlap: false,
navLinks: true, navLinks: true,
navLinkDayClick: this.navLinkDayClick, navLinkDayClick: this.navLinkDayClick,
// eventDurationEditable:false, // eventDurationEditable:false,
eventDrop: this.eventDrop, eventDrop: this.eventDrop,
editable: true, editable: true,
overlap: false, overlap: false,
defaultDate: new Date(), defaultDate: new Date(),
datesSet: this.handleDatesSet, datesSet: this.handleDatesSet,
events: [], events: [],
slotEventOverlap: true, slotEventOverlap: true,
header: { header: {
center: 'month,agendaFourDay', // buttons for switching between views center: 'month,agendaFourDay', // buttons for switching between views
}, },
firstDay: 1, // 设置一周中显示的第一天是哪天,周日是0,周一是1,类推 firstDay: 1, // 设置一周中显示的第一天是哪天,周日是0,周一是1,类推
locale: 'zh-cn', // 切换语言,当前为中文 locale: 'zh-cn', // 切换语言,当前为中文
eventColor: '#fff', // 全部日历日程背景色3BB2E3 eventColor: '#fff', // 全部日历日程背景色3BB2E3
eventBackgroundColor: '#E7F4F5', eventBackgroundColor: '#E7F4F5',
// themeSystem: 'bootstrap', // 主题色(本地测试未能生效) // themeSystem: 'bootstrap', // 主题色(本地测试未能生效)
// initialDate: moment().format('YYYY-MM-DD'), // 自定义设置背景颜色时一定要初始化日期时间 // initialDate: moment().format('YYYY-MM-DD'), // 自定义设置背景颜色时一定要初始化日期时间
timeGridEventMinHeight: '40', // 设置事件的最小高度 timeGridEventMinHeight: '40', // 设置事件的最小高度
aspectRatio: 1.35, // 设置日历单元格宽度与高度的比例。 aspectRatio: 1.35, // 设置日历单元格宽度与高度的比例。
// displayEventTime: false, // 是否显示时间 // displayEventTime: false, // 是否显示时间
allDaySlot: false, // 周,日视图时,all-day 不显示 allDaySlot: false, // 周,日视图时,all-day 不显示
eventLimit: true, // 设置月日程,与all-day slot的最大显示数量,超过的通过弹窗显示 eventLimit: true, // 设置月日程,与all-day slot的最大显示数量,超过的通过弹窗显示
customButtons: { customButtons: {
myCustomButton: { myCustomButton: {
text: '本周', text: '本周',
},
},
headerToolbar: {
// 日历头部按钮位置
left: '',
center: 'prev myCustomButton next',
right: '',
}, },
expandRows: true, },
slotMinWidth: 50, headerToolbar: {
slotDuration: '01:00:00', // 日历头部按钮位置
slotMinTime: '09:00', left: '',
slotMaxTime: '21:00', center: 'prev myCustomButton next',
slotLabelInterval: '', right: '',
scrollTime: false, },
slotLabelFormat: { expandRows: true,
hour: 'numeric', slotMinWidth: 50,
minute: '2-digit', slotDuration: '01:00:00',
meridiem: 'short', slotMinTime: '01:00',
hour12: false, // 设置时间为24小时 slotMaxTime: '23:00',
slotLabelInterval: '',
scrollTime: false,
slotLabelFormat: {
hour: 'numeric',
minute: '2-digit',
meridiem: 'short',
hour12: false, // 设置时间为24小时
},
eventLimitNum: {
// 事件显示数量限制(本地测试未能生效)
dayGrid: {
eventLimit: 5,
}, },
eventLimitNum: { timeGrid: {
// 事件显示数量限制(本地测试未能生效) eventLimit: 4, // adjust to 6 only for timeGridWeek/timeGridDay
dayGrid: {
eventLimit: 5,
},
timeGrid: {
eventLimit: 4, // adjust to 6 only for timeGridWeek/timeGridDay
},
}, },
eventClick: this.handleEventClick,
}, },
workingTicketVisible: false, // 工作表票详情页面 eventClick: this.handleEventClick,
scrollerHeight: 0,
loading: false,
isDoIt: false,
getStartWeek: '',
copyArr: [],
centerDialogVisible: false,
maxNumValue: '',
showFirNum: '',
showMaxNum: '',
};
},
computed: {},
watch: {
week(newV, oldV) {
if (this.haveWeek.indexOf(newV) == -1) {
this.haveWeek.push(newV);
this.handleInitSearch();
}
if (newV !== oldV) {
this.handleInitSearch();
this.saveDoctoreScheduling(2, oldV);
}
}, },
workingTicketVisible: false, // 工作表票详情页面
scrollerHeight: 0,
loading: false,
isDoIt: false,
getStartWeek: '',
copyArr: [],
centerDialogVisible: false,
maxNumValue: '',
showFirNum: '',
showMaxNum: '',
};
},
computed: {},
watch: {
week(newV, oldV) {
if (this.haveWeek.indexOf(newV) == -1) {
this.haveWeek.push(newV);
this.handleInitSearch();
}
if (newV !== oldV) {
this.handleInitSearch();
this.saveDoctoreScheduling(2, oldV);
}
}, },
created() { },
this.schedulingType = this.$route.query.type || 1; created() {
this.id = this.$route.query.id; this.schedulingType = this.$route.query.type || 1;
(this.doctorId = this.$route.query.doctorId), this.id = this.$route.query.id;
(this.doctorId = this.$route.query.doctorId),
getDoctorInfo({ id: this.id }).then((res) => { getDoctorInfo({ id: this.id }).then((res) => {
if (res.code == '000000') { if (res.code == '000000') {
this.schedulingTypeValue = res.data; this.schedulingTypeValue = res.data;
...@@ -285,412 +285,409 @@ ...@@ -285,412 +285,409 @@
this.$toast(res.message); this.$toast(res.message);
} }
}); });
getLevel().then((res) => { getLevel().then((res) => {
if (res.code == '000000') { if (res.code == '000000') {
this.createList = res.data; this.createList = res.data;
} }
}); });
}, },
mounted() { mounted() {
this.scrollerHeight = this.$refs.agment.clientHeight + 'px'; this.scrollerHeight = this.$refs.agment.clientHeight + 'px';
this.init(); this.init();
},
methods: {
/**
* 点击日历日程事件
*
* info: 事件信息
* event是日程(事件)对象
* jsEvent是个javascript事件
* view是当前视图对象。
*/
init() {
// schedulingType 1,2 表示编辑新加,其他表示查看
if (this.schedulingType == 1 || this.schedulingType == 2) {
this.calendarOptions.editable = true;
} else {
// 查看
this.calendarOptions.slotDuration = '01:00:00';
this.calendarOptions.selectable = false;
this.calendarOptions.editable = false;
}
this.handleInitSearch();
this.getLevelAndDayCount();
}, },
methods: { getLevelAndDayCount(newV) {
/** const params = {
* 点击日历日程事件 workId: newV ? newV : this.id,
* };
* info: 事件信息 getLevelAndDayCount(params).then((res) => {
* event是日程(事件)对象 if (res.code === '000000') {
* jsEvent是个javascript事件 console.log(res, 'res');
* view是当前视图对象。 this.currentIndex = res.data.level;
*/ this.maxNumValue = res.data.preNum;
init() { (this.showFirNum = res.data.level),
// schedulingType 1,2 表示编辑新加,其他表示查看
if (this.schedulingType == 1 || this.schedulingType == 2) {
this.calendarOptions.editable = true;
} else {
// 查看
this.calendarOptions.slotDuration = '01:00:00';
this.calendarOptions.selectable = false;
this.calendarOptions.editable = false;
}
this.handleInitSearch();
this.getLevelAndDayCount();
},
getLevelAndDayCount(newV) {
const params = {
workId: newV ? newV : this.id,
};
getLevelAndDayCount(params).then((res) => {
if (res.code === '000000') {
console.log(res, 'res');
this.currentIndex = res.data.level;
this.maxNumValue = res.data.preNum;
(this.showFirNum = res.data.level),
(this.showMaxNum = res.data.preNum); (this.showMaxNum = res.data.preNum);
}
});
},
navLinkDayClick(date) {
const day = dayjs(date).day();
const dayDate = dayjs(date).date();
const dayFormat = dayjs(date).format('YYYY-MM-DD');
let selectDate = dayFormat + ' ' + '09:00:00';
selectDate = dayjs(selectDate).unix();
const nowDate = dayjs(new Date()).unix();
let isAddAllDay = true;
const haveSelectDate = this.calendarOptions.events;
const len = haveSelectDate.length;
const differenceTime = ((nowDate - selectDate) / 3600) | 0;
if (differenceTime > 0 && differenceTime >= 24) {
return this.$message.info('你不能添加过去的时间的排班');
}
for (var i = 0; i < len; i++) {
const itemDay = dayjs(haveSelectDate[i].start).day();
if (!haveSelectDate[i].constraint && day === itemDay) {
haveSelectDate[i].allStatus && (isAddAllDay = false);
const index = this.getIdDeleteData(haveSelectDate[i].id);
this.isDoIt = true;
this.calendarOptions.events.splice(index, 1);
i--;
}
} }
if (isAddAllDay) { });
// 添加日期 },
const selectAllDay = [ navLinkDayClick(date) {
{ startTime: '09:00:00', endTime: '12:00:00' }, const day = dayjs(date).day();
{ startTime: '13:00:00', endTime: '21:00:00' }, const dayDate = dayjs(date).date();
]; const dayFormat = dayjs(date).format('YYYY-MM-DD');
selectAllDay.forEach((item) => { let selectDate = dayFormat + ' ' + '01:00:00';
const allDayData = {}; selectDate = dayjs(selectDate).unix();
allDayData.id = const nowDate = dayjs(new Date()).unix();
dayDate + (this.calendarOptions.events.length + 1) * 10; let isAddAllDay = true;
allDayData.week = this.week; const haveSelectDate = this.calendarOptions.events;
allDayData.end = dayFormat + ' ' + item.endTime; const len = haveSelectDate.length;
allDayData.start = dayFormat + ' ' + item.startTime; const differenceTime = ((nowDate - selectDate) / 3600) | 0;
allDayData.allStatus = true; if (differenceTime > 0 && differenceTime >= 24) {
console.log(allDayData); return this.$message.info('你不能添加过去的时间的排班');
this.calendarOptions.events.push(allDayData); }
}); for (var i = 0; i < len; i++) {
const itemDay = dayjs(haveSelectDate[i].start).day();
if (!haveSelectDate[i].constraint && day === itemDay) {
haveSelectDate[i].allStatus && (isAddAllDay = false);
const index = this.getIdDeleteData(haveSelectDate[i].id);
this.isDoIt = true; this.isDoIt = true;
this.calendarOptions.events.splice(index, 1);
i--;
} }
}, }
getCopyData(lastWeekData) { if (isAddAllDay) {
const copyDate = []; // 添加日期
const addDay = 7; const selectAllDay = [{ startTime: '01:00:00', endTime: '23:00:00' }];
lastWeekData.noAcceptList.map((item) => { selectAllDay.forEach((item) => {
const nowWeekTime = {}; const allDayData = {};
nowWeekTime['startTime'] = dayjs(item.startTime) allDayData.id =
.add(addDay, 'day') dayDate + (this.calendarOptions.events.length + 1) * 10;
.format('YYYY-MM-DD HH:mm:ss'); allDayData.week = this.week;
nowWeekTime['endTime'] = dayjs(item.endTime) allDayData.end = dayFormat + ' ' + item.endTime;
.add(addDay, 'day') allDayData.start = dayFormat + ' ' + item.startTime;
.format('YYYY-MM-DD HH:mm:ss'); allDayData.allStatus = true;
copyDate.push(nowWeekTime); console.log(allDayData);
this.calendarOptions.events.push(allDayData);
}); });
this.calendarOptions.events = [];
lastWeekData.noAcceptList = copyDate;
this.isDoIt = true; this.isDoIt = true;
}, }
handleInitSearch(isReset, isLoopLast) { },
// getCopyData(lastWeekData) {
if (isReset && isLoopLast != 1) { const copyDate = [];
this.calendarOptions.events = this.calendarOptions.events.filter( const addDay = 7;
(v) => v.week !== this.week lastWeekData.noAcceptList.map((item) => {
); const nowWeekTime = {};
} nowWeekTime['startTime'] = dayjs(item.startTime)
let copyWeek = ''; .add(addDay, 'day')
if (isLoopLast == 1) { .format('YYYY-MM-DD HH:mm:ss');
if (this.week == 1) { nowWeekTime['endTime'] = dayjs(item.endTime)
copyWeek = 2; .add(addDay, 'day')
} else if (this.week == 3) { .format('YYYY-MM-DD HH:mm:ss');
copyWeek = 1; copyDate.push(nowWeekTime);
} else if (this.week == 4) { });
copyWeek = 3; this.calendarOptions.events = [];
} else if (this.week == 5) { lastWeekData.noAcceptList = copyDate;
copyWeek = 4; this.isDoIt = true;
} },
handleInitSearch(isReset, isLoopLast) {
//
if (isReset && isLoopLast != 1) {
this.calendarOptions.events = this.calendarOptions.events.filter(
(v) => v.week !== this.week
);
}
let copyWeek = '';
if (isLoopLast == 1) {
if (this.week == 1) {
copyWeek = 2;
} else if (this.week == 3) {
copyWeek = 1;
} else if (this.week == 4) {
copyWeek = 3;
} else if (this.week == 5) {
copyWeek = 4;
} }
const searchLastWeek = {}; }
searchLastWeek.doctorId = this.doctorId; const searchLastWeek = {};
searchLastWeek.week = isLoopLast == 1 ? copyWeek : this.week; searchLastWeek.doctorId = this.doctorId;
// isLoopLast == 1 表示 copy searchLastWeek.week = isLoopLast == 1 ? copyWeek : this.week;
searchLastWeek.workId = this.id; // isLoopLast == 1 表示 copy
dutyRosterQuery(searchLastWeek).then((res) => { searchLastWeek.workId = this.id;
if (res.code == '000000') { dutyRosterQuery(searchLastWeek).then((res) => {
console.log(res.data.noAcceptList, 'res.data.noAcceptList'); if (res.code == '000000') {
if (isLoopLast == 1 && !res.data.noAcceptList.length) { console.log(res.data.noAcceptList, 'res.data.noAcceptList');
return this.$toast('没有上周的排班信息可以用'); if (isLoopLast == 1 && !res.data.noAcceptList.length) {
} else { return this.$toast('没有上周的排班信息可以用');
this.calendarOptions.events = [];
}
if (isLoopLast == 1 && res.data.noAcceptList.length) {
this.getCopyData(res.data);
}
this.handleInitData(res.data);
} else { } else {
this.$toast(res.message); this.calendarOptions.events = [];
} }
}); if (isLoopLast == 1 && res.data.noAcceptList.length) {
}, this.getCopyData(res.data);
handleInitData(weekData) { }
var newDate = null; this.handleInitData(res.data);
if (this.schedulingType != 3) {
newDate = [].concat(weekData.noAcceptList);
} else { } else {
var acceptList = []; this.$toast(res.message);
weekData.acceptList.forEach((item) => {
item.type = 88;
acceptList.push(item);
});
newDate = [].concat(acceptList, weekData.noAcceptList);
} }
newDate.forEach((item) => { });
const selectDate = {}; },
const id = (this.calendarOptions.events.length + 1) * 10; handleInitData(weekData) {
selectDate['week'] = this.week; var newDate = null;
selectDate['id'] = id; if (this.schedulingType != 3) {
selectDate['end'] = item.endTime; newDate = [].concat(weekData.noAcceptList);
selectDate['start'] = item.startTime; } else {
selectDate['type'] = item.type; var acceptList = [];
if (item.type == 88) { weekData.acceptList.forEach((item) => {
selectDate['color'] = '#FFEDE9'; item.type = 88;
} acceptList.push(item);
this.calendarOptions.events.push(selectDate);
}); });
this.limmitDateFun(); newDate = [].concat(acceptList, weekData.noAcceptList);
}, }
limmitDateFun() { newDate.forEach((item) => {
for (let i = 0; i < 7; i++) { const selectDate = {};
const limitTime = {}; const id = (this.calendarOptions.events.length + 1) * 10;
const day = dayjs(this.getEveryDay) selectDate['week'] = this.week;
.add(i, 'day') selectDate['id'] = id;
.format('YYYY-MM-DD HH:mm:ss'); selectDate['end'] = item.endTime;
limitTime.start = dayjs(day) selectDate['start'] = item.startTime;
.add(12, 'hour') selectDate['type'] = item.type;
.format('YYYY-MM-DD HH:mm:ss'); if (item.type == 88) {
limitTime.end = dayjs(day) selectDate['color'] = '#FFEDE9';
.add(13, 'hour')
.format('YYYY-MM-DD HH:mm:ss');
limitTime.constraint = 'businessHours';
limitTime.color = '#ccc';
limitTime.display = 'background';
limitTime.editable = false;
this.calendarOptions.events.push(limitTime);
}
console.log('obj', this.getEveryDay);
},
handleDatesSet(dataInfo) {
this.getEveryDay = dayjs(dataInfo.start).format('YYYY-MM-DD HH:mm:ss');
const currentTime = new Date().getTime(); // 今天的时间戳
const getTime = new Date(dataInfo.start).getTime(); // 每周周一的时间戳
const cz = currentTime - getTime; // 每周周一时间戳 - 今天的时间
const oneHour = 1 * 60 * 60 * 1000 * 24; // 一天的时间戳
const timeDifference = (cz / oneHour) | 0; // 每周一时间距离今天时间数量
const weekHeadTitle = this.calendarOptions.customButtons.myCustomButton;
console.log(timeDifference, 'timeDifference', cz / oneHour);
// debugger;
const exactTime = cz / oneHour;
if (timeDifference == 0 && exactTime > 0) {
this.week = 1;
weekHeadTitle.text = '本周';
return;
} }
if (timeDifference > 0 && timeDifference <= 6) { this.calendarOptions.events.push(selectDate);
// 过去 });
this.week = 1; // this.limmitDateFun();
weekHeadTitle.text = '本周'; },
} else if (timeDifference >= -6 && timeDifference <= 0) { limmitDateFun() {
// 未来 for (let i = 0; i < 7; i++) {
this.week = 3; const limitTime = {};
weekHeadTitle.text = '下周'; const day = dayjs(this.getEveryDay)
} else if (timeDifference >= -13 && timeDifference <= -7) { .add(i, 'day')
// 未来 .format('YYYY-MM-DD HH:mm:ss');
this.week = 4;
weekHeadTitle.text = '第二周'; limitTime.start = dayjs(day)
} else if (timeDifference >= -20 && timeDifference <= -14) { .add(12, 'hour')
// 未来 .format('YYYY-MM-DD HH:mm:ss');
this.week = 5; limitTime.end = dayjs(day)
weekHeadTitle.text = '第三周'; .add(13, 'hour')
} else if (timeDifference >= 7) { .format('YYYY-MM-DD HH:mm:ss');
// 现在 limitTime.constraint = 'businessHours';
weekHeadTitle.text = '上周'; limitTime.color = '#ccc';
this.week = 2; limitTime.display = 'background';
limitTime.editable = false;
this.calendarOptions.events.push(limitTime);
}
},
handleDatesSet(dataInfo) {
this.getEveryDay = dayjs(dataInfo.start).format('YYYY-MM-DD HH:mm:ss');
const currentTime = new Date().getTime(); // 今天的时间戳
const getTime = new Date(dataInfo.start).getTime(); // 每周周一的时间戳
const cz = currentTime - getTime; // 每周周一时间戳 - 今天的时间
const oneHour = 1 * 60 * 60 * 1000 * 24; // 一天的时间戳
const timeDifference = (cz / oneHour) | 0; // 每周一时间距离今天时间数量
const weekHeadTitle = this.calendarOptions.customButtons.myCustomButton;
console.log(timeDifference, 'timeDifference', cz / oneHour);
// debugger;
const exactTime = cz / oneHour;
if (timeDifference == 0 && exactTime > 0) {
this.week = 1;
weekHeadTitle.text = '本周';
return;
}
if (timeDifference > 0 && timeDifference <= 6) {
// 过去
this.week = 1;
weekHeadTitle.text = '本周';
} else if (timeDifference >= -6 && timeDifference <= 0) {
// 未来
this.week = 3;
weekHeadTitle.text = '下周';
} else if (timeDifference >= -13 && timeDifference <= -7) {
// 未来
this.week = 4;
weekHeadTitle.text = '第二周';
} else if (timeDifference >= -20 && timeDifference <= -14) {
// 未来
this.week = 5;
weekHeadTitle.text = '第三周';
} else if (timeDifference >= 7) {
// 现在
weekHeadTitle.text = '上周';
this.week = 2;
}
},
eventResize(event) {
const index = this.getIdDeleteData(event.event.id);
const oldData = this.calendarOptions.events;
const keyAll = Object.keys(oldData[index]);
const dataObj = {};
keyAll.forEach((item) => {
if (item === 'week' || item === 'type') {
dataObj[item] = oldData[index][item];
} else {
dataObj[item] = event.event[item];
} }
}, });
eventResize(event) { oldData.splice(index, 1, dataObj);
this.getHandleTime(dataObj);
},
handleEventClick(event) {
if (!this.calendarOptions.selectable || event.event.constraint) {
return;
}
this.$confirm('你要取消日期吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then((_) => {
console.log(_);
const index = this.getIdDeleteData(event.event.id); const index = this.getIdDeleteData(event.event.id);
const oldData = this.calendarOptions.events; this.isDoIt = true;
const keyAll = Object.keys(oldData[index]); this.calendarOptions.events.splice(index, 1);
const dataObj = {}; });
keyAll.forEach((item) => { },
if (item === 'week' || item === 'type') { eventDrop(event) {
dataObj[item] = oldData[index][item]; event.revert();
} else { return;
dataObj[item] = event.event[item]; },
} // 每小时接诊上限人数
}); getMaxNumValue(value) {
oldData.splice(index, 1, dataObj); console.log(value, 'getMaxNumValue');
this.getHandleTime(dataObj); this.maxNumValue = value;
}, },
handleEventClick(event) { // 提交优先级和人数
if (!this.calendarOptions.selectable || event.event.constraint) { submitSetData() {
return; const params = {
doctorId: this.doctorId,
level: this.currentIndex,
workId: this.id,
preNum: this.maxNumValue,
};
saveLevelAndDayCount(params).then((res) => {
if (res.code === '000000') {
this.$message({
message: '设置成功',
type: 'success',
});
this.centerDialogVisible = false;
this.getLevelAndDayCount();
} }
this.$confirm('你要取消日期吗?', '提示', { });
confirmButtonText: '确定', },
cancelButtonText: '取消', selectInfo(info) {
type: 'warning', console.log(info, 'infoinfoinfo');
}).then((_) => { const day = dayjs(info.start).date();
console.log(_); const id = day + (this.calendarOptions.events.length + 1) * 10;
const index = this.getIdDeleteData(event.event.id); info.id = id;
this.isDoIt = true; const keyAll = ['end', 'id', 'start', 'week'];
this.calendarOptions.events.splice(index, 1); const selectTime = {};
keyAll.forEach((item) => {
if (item == 'week') {
selectTime[item] = this.week;
} else {
selectTime[item] = info[item];
}
});
console.log(selectTime, 'dataObjdataObj');
this.calendarOptions.events.push(selectTime);
},
selectAllow(info) {
this.isDoIt = true;
const startDay = new Date(info.start).getDay();
const endDay = new Date(info.end).getDay();
console.log(dayjs(info.start).format('YYYY-MM-DD HH:mm:ss'));
if (startDay != endDay) {
return false;
}
const currentDate = new Date();
const start = info.start;
const end = info.end;
return start <= end && start >= currentDate;
},
getIdDeleteData(eventId) {
// 删除现有排班
const data = this.calendarOptions.events;
const index = data.findIndex((event) => event.id == eventId);
return index;
},
getHandleTime(info) {
// 对于排班交叉部分处理
const infoStart = new Date(info.start).getTime();
const infoEnd = new Date(info.end).getTime();
const haveSelectTime = this.calendarOptions.events;
const correctDate = [];
let isRepeat = false;
haveSelectTime.forEach((item) => {
const selectEndTime = new Date(item.end).getTime();
const selectStartTime = new Date(item.start).getTime();
if (selectStartTime > infoStart && infoEnd >= selectEndTime) {
isRepeat = true;
} else if (selectStartTime > infoStart && infoEnd >= selectStartTime) {
isRepeat = true;
} else {
const id = (correctDate.length + 1) * 10;
item.id = id;
correctDate.push(item);
}
});
this.calendarOptions.events = correctDate;
return isRepeat;
},
handlePriority(index) {
this.isDoIt = true;
this.currentIndex = index;
},
resetDoctoreScheduling() {
this.handleInitSearch(true);
},
copyDoctoreScheduling() {
this.handleInitSearch(true, 1);
},
saveDoctoreScheduling(type, weekV = 0) {
if (this.isDoIt) {
this.loading = true;
const saveParms = {};
saveParms.week = weekV ? weekV : this.week;
saveParms.workId = this.schedulingTypeValue.id;
const lastData = [];
const haveSelectDate = this.calendarOptions.events;
haveSelectDate.forEach((item) => {
if (item.week == (weekV ? weekV : this.week)) {
const saveDate = {};
saveDate.startTime = dayjs(item.start).format(
'YYYY-MM-DD HH:mm:ss'
);
saveDate.endTime = dayjs(item.end).format('YYYY-MM-DD HH:mm:ss');
lastData.push(saveDate);
}
}); });
}, console.log('saveParms=======', saveParms);
eventDrop(event) { // saveParms.list = lastData.filter((item) => {
event.revert(); // return item.startTime.split(' ')[1] !== '12:00:00';
return; // });
}, saveParms.list = lastData.slice(0);
// 每小时接诊上限人数 saveDutyRoster(saveParms).then((res) => {
getMaxNumValue(value) {
console.log(value, 'getMaxNumValue');
this.maxNumValue = value;
},
// 提交优先级和人数
submitSetData() {
const params = {
doctorId: this.doctorId,
level: this.currentIndex,
workId: this.id,
preNum: this.maxNumValue,
};
saveLevelAndDayCount(params).then((res) => {
if (res.code === '000000') { if (res.code === '000000') {
this.loading = false;
this.$message({ this.$message({
message: '设置成功', message: '排班保存成功',
type: 'success', type: 'success',
}); });
this.centerDialogVisible = false; this.isDoIt = false;
this.getLevelAndDayCount(); this.handleInitSearch(true);
}
});
},
selectInfo(info) {
console.log(info, 'infoinfoinfo');
const day = dayjs(info.start).date();
const id = day + (this.calendarOptions.events.length + 1) * 10;
info.id = id;
const keyAll = ['end', 'id', 'start', 'week'];
const selectTime = {};
keyAll.forEach((item) => {
if (item == 'week') {
selectTime[item] = this.week;
} else { } else {
selectTime[item] = info[item]; this.$message.error(res.message || '排班保存失败');
} }
}); });
console.log(selectTime, 'dataObjdataObj'); if (!this.maxNumValue && this.maxNumValue != 0) {
this.calendarOptions.events.push(selectTime); return this.$message({
}, message: '请设置优先级和接诊上限设置',
selectAllow(info) { type: 'warning',
this.isDoIt = true;
const startDay = new Date(info.start).getDay();
const endDay = new Date(info.end).getDay();
const startHour = dayjs(info.start).hour();
console.log(dayjs(info.start).format('YYYY-MM-DD HH:mm:ss'));
if (startDay != endDay || startHour == 12) {
return false;
}
const currentDate = new Date();
const start = info.start;
const end = info.end;
return start <= end && start >= currentDate;
},
getIdDeleteData(eventId) {
// 删除现有排班
const data = this.calendarOptions.events;
const index = data.findIndex((event) => event.id == eventId);
return index;
},
getHandleTime(info) {
// 对于排班交叉部分处理
const infoStart = new Date(info.start).getTime();
const infoEnd = new Date(info.end).getTime();
const haveSelectTime = this.calendarOptions.events;
const correctDate = [];
let isRepeat = false;
haveSelectTime.forEach((item) => {
const selectEndTime = new Date(item.end).getTime();
const selectStartTime = new Date(item.start).getTime();
if (selectStartTime > infoStart && infoEnd >= selectEndTime) {
isRepeat = true;
} else if (selectStartTime > infoStart && infoEnd >= selectStartTime) {
isRepeat = true;
} else {
const id = (correctDate.length + 1) * 10;
item.id = id;
correctDate.push(item);
}
});
this.calendarOptions.events = correctDate;
return isRepeat;
},
handlePriority(index) {
this.isDoIt = true;
this.currentIndex = index;
},
resetDoctoreScheduling() {
this.handleInitSearch(true);
},
copyDoctoreScheduling() {
this.handleInitSearch(true, 1);
},
saveDoctoreScheduling(type, weekV = 0) {
if (this.isDoIt) {
this.loading = true;
const saveParms = {};
saveParms.week = weekV ? weekV : this.week;
saveParms.workId = this.schedulingTypeValue.id;
const lastData = [];
const haveSelectDate = this.calendarOptions.events;
haveSelectDate.forEach((item) => {
if (item.week == (weekV ? weekV : this.week)) {
const saveDate = {};
saveDate.startTime = dayjs(item.start).format(
'YYYY-MM-DD HH:mm:ss'
);
saveDate.endTime = dayjs(item.end).format('YYYY-MM-DD HH:mm:ss');
lastData.push(saveDate);
}
});
console.log('saveParms=======', saveParms);
saveParms.list = lastData.filter((item) => {
return item.startTime.split(' ')[1] !== '12:00:00';
});
saveDutyRoster(saveParms).then((res) => {
if (res.code === '000000') {
this.loading = false;
this.$message({
message: '排班保存成功',
type: 'success',
});
this.isDoIt = false;
this.handleInitSearch(true);
} else {
this.$message.error(res.message || '排班保存失败');
}
}); });
if (!this.maxNumValue && this.maxNumValue != 0) {
return this.$message({
message: '请设置优先级和接诊上限设置',
type: 'warning',
});
}
} }
}, }
}, },
}; },
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -106,244 +106,244 @@ ...@@ -106,244 +106,244 @@
</div> </div>
</template> </template>
<script> <script>
import { departmentAll } from '@/api/diagnosis'; import { departmentAll } from '@/api/diagnosis';
import FullCalendar from '@fullcalendar/vue'; import {
import dayGridPlugin from '@fullcalendar/daygrid'; getPlatformUpper,
import timeGridPlugin from '@fullcalendar/timegrid'; previewWork,
import interactionPlugin from '@fullcalendar/interaction'; setPlatformUpper,
import resourceTimeGridPlugin from '@fullcalendar/resource-timegrid'; } from '@/api/serviceSchedule';
import { import FullCalendar from '@fullcalendar/vue';
previewWork, import dayGridPlugin from '@fullcalendar/daygrid';
setPlatformUpper, import interactionPlugin from '@fullcalendar/interaction';
getPlatformUpper, import resourceTimeGridPlugin from '@fullcalendar/resource-timegrid';
} from '@/api/serviceSchedule'; import timeGridPlugin from '@fullcalendar/timegrid';
export default { export default {
name: 'Index', name: 'Index',
components: { components: {
FullCalendar, FullCalendar,
}, },
data() { data() {
return { return {
maxDiaNum: 10, maxDiaNum: 10,
dateTime: '', dateTime: '',
interfaceOptions: [], interfaceOptions: [],
innerform: [], innerform: [],
props: { props: {
// props定义的值根据接口返回的数据定的 // props定义的值根据接口返回的数据定的
label: 'value', label: 'value',
value: 'no', value: 'no',
children: 'interface', children: 'interface',
}, },
departmentId: '', departmentId: '',
id: '', id: '',
doctorId: '', doctorId: '',
schedulingTypeValue: {}, schedulingTypeValue: {},
schedulingType: 1, // 1 新增 2 编辑 3 查看 schedulingType: 1, // 1 新增 2 编辑 3 查看
createList: [], createList: [],
listDate: [], listDate: [],
week: 1, // 1:当前周 2:上一周 3:下一周 week: 1, // 1:当前周 2:上一周 3:下一周
currentIndex: 3, currentIndex: 3,
haveWeek: [1], haveWeek: [1],
calendarOptions: { calendarOptions: {
plugins: [ plugins: [
dayGridPlugin, dayGridPlugin,
interactionPlugin, interactionPlugin,
timeGridPlugin, timeGridPlugin,
resourceTimeGridPlugin, resourceTimeGridPlugin,
], ],
// timeZone: 'UTC', // timeZone: 'UTC',
locale: 'zh-cn', locale: 'zh-cn',
aspectRatio: 2.8, // 设置日历单元格宽度与高度的比例。 aspectRatio: 2.8, // 设置日历单元格宽度与高度的比例。
schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives', schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
initialView: 'resourceTimeGridDay', initialView: 'resourceTimeGridDay',
resources: [], resources: [],
eventColor: '#fff', eventColor: '#fff',
eventBackgroundColor: '#fff', eventBackgroundColor: '#fff',
events: [], events: [],
slotMinWidth: 50, slotMinWidth: 50,
resourceAreaWidth: '5%', resourceAreaWidth: '5%',
allDaySlot: false, // 周,日视图时,all-day 不显示 allDaySlot: false, // 周,日视图时,all-day 不显示
slotDuration: '01:00:00', slotDuration: '01:00:00',
slotMinTime: '09:00', slotMinTime: '01:00',
slotMaxTime: '21:00', slotMaxTime: '23:00',
slotLabelInterval: '', slotLabelInterval: '',
scrollTime: false, scrollTime: false,
initialDate: '2021-10-31', initialDate: '2021-10-31',
slotLabelFormat: { slotLabelFormat: {
hour: 'numeric', hour: 'numeric',
minute: '2-digit', minute: '2-digit',
meridiem: 'short', meridiem: 'short',
hour12: false, // 设置时间为24小时 hour12: false, // 设置时间为24小时
},
expandRows: true,
}, },
workingTicketVisible: false, // 工作表票详情页面 expandRows: true,
scrollerHeight: 0, },
loading: false, workingTicketVisible: false, // 工作表票详情页面
doctorList: [], scrollerHeight: 0,
index: 0, loading: false,
getWidth: '100%', doctorList: [],
getMaxWidth: '100%', index: 0,
allTilst: [], getWidth: '100%',
allList: {}, getMaxWidth: '100%',
allTilst: [],
allList: {},
};
},
watch: {},
created() {
this.departmentAll();
// this.getPlatformUpper();
},
mounted() {},
methods: {
getPlatformUpper() {
getPlatformUpper().then((res) => {
if (res.code === '000000') {
console.log(res);
this.maxDiaNum = res.data;
}
});
},
setPlatformUpper() {
const params = {
num: this.maxDiaNum,
}; };
setPlatformUpper(params).then((res) => {
if (res.code === '000000') {
this.$message({
message: '保存成功',
type: 'success',
});
this.getPlatformUpper();
}
});
}, },
watch: {}, getInputNumber(value) {
created() { console.log(value, 'getInputNumbergetInputNumber');
this.departmentAll();
// this.getPlatformUpper();
}, },
mounted() {}, departmentAll() {
methods: { departmentAll().then((res) => {
getPlatformUpper() { if (res.code == '000000') {
getPlatformUpper().then((res) => { console.log(res, 'res111');
if (res.code === '000000') { this.allList = res.data || {};
console.log(res); this.showListALL();
this.maxDiaNum = res.data; }
} });
}); },
}, showListALL() {
setPlatformUpper() { const arr = [];
const params = { const { departmentMapList, parentDepartmentList } = this.allList;
num: this.maxDiaNum, parentDepartmentList.map((item) => {
const obj = {
label: item.departmentName,
value: item.departmentId,
children: [],
}; };
setPlatformUpper(params).then((res) => { departmentMapList.map((info) => {
if (res.code === '000000') { if (info.parentDepartmentId === obj.value) {
this.$message({ const children = [];
message: '保存成功', info.diagnoseDepartmentRespList.map((detail) => {
type: 'success', const secondObj = {
label: detail.departmentName,
value: detail.departmentId,
text: '',
};
let secondChildren = '';
(detail.departmentDeseaseRespList || []).map((res) => {
secondChildren += res.deseaseName + ' ';
});
secondObj.text = secondChildren ? `(${secondChildren})` : '';
children.push(secondObj);
}); });
this.getPlatformUpper(); obj.children = children;
} }
}); });
}, arr.push(obj);
getInputNumber(value) { });
console.log(value, 'getInputNumbergetInputNumber');
}, console.log(arr);
departmentAll() { this.allTilst = arr;
departmentAll().then((res) => { },
if (res.code == '000000') { // 获取选择的值
console.log(res, 'res111'); changeDepartment() {
this.allList = res.data || {}; const checkedNodes = this.$refs['cascader'].getCheckedNodes();
this.showListALL(); if (checkedNodes.length > 0) {
} this.departmentId = checkedNodes[0].value;
} else {
this.departmentId = '';
}
},
getNowDate(value) {
this.dateTime = value;
},
search() {
if (!this.dateTime || !this.departmentId) {
return this.$message({
message: '科室和时间都需要选择哦!',
type: 'warning',
}); });
}, }
showListALL() { const params = {
const arr = []; dateTime: this.dateTime,
const { departmentMapList, parentDepartmentList } = this.allList; departmentId: this.departmentId,
parentDepartmentList.map((item) => { };
const obj = { previewWork({ ...params }).then((res) => {
label: item.departmentName, if (res.code === '000000' && res.data) {
value: item.departmentId, this.calendarOptions.resources = (res.data.doctorList || []).map(
children: [], (item) => {
}; return {
departmentMapList.map((info) => { id: item.doctorId,
if (info.parentDepartmentId === obj.value) { title: item.doctorName,
const children = []; };
info.diagnoseDepartmentRespList.map((detail) => {
const secondObj = {
label: detail.departmentName,
value: detail.departmentId,
text: '',
};
let secondChildren = '';
(detail.departmentDeseaseRespList || []).map((res) => {
secondChildren += res.deseaseName + ' ';
});
secondObj.text = secondChildren ? `(${secondChildren})` : '';
children.push(secondObj);
});
obj.children = children;
} }
}); );
arr.push(obj); const dutyRosterPreList = (res.data.dutyRosterPreList || []).map(
}); (item, index) => {
return {
console.log(arr); id: index,
this.allTilst = arr; resourceId: item.doctorId,
}, end: item.endTime,
// 获取选择的值 start: item.startTime,
changeDepartment() { color: '#FFEDE9',
const checkedNodes = this.$refs['cascader'].getCheckedNodes(); };
if (checkedNodes.length > 0) { }
this.departmentId = checkedNodes[0].value; );
} else { const dutyWorkList = (res.data.dutyWorkList || []).map(
this.departmentId = ''; (item, index) => {
} return {
}, id: index,
getNowDate(value) { resourceId: item.doctorId,
this.dateTime = value; end: item.endTime,
}, start: item.startTime,
search() { color: '#E7F4F5',
if (!this.dateTime || !this.departmentId) { };
return this.$message({
message: '科室和时间都需要选择哦!',
type: 'warning',
});
}
const params = {
dateTime: this.dateTime,
departmentId: this.departmentId,
};
previewWork({ ...params }).then((res) => {
if (res.code === '000000' && res.data) {
this.calendarOptions.resources = (res.data.doctorList || []).map(
(item) => {
return {
id: item.doctorId,
title: item.doctorName,
};
}
);
const dutyRosterPreList = (res.data.dutyRosterPreList || []).map(
(item, index) => {
return {
id: index,
resourceId: item.doctorId,
end: item.endTime,
start: item.startTime,
color: '#FFEDE9',
};
}
);
const dutyWorkList = (res.data.dutyWorkList || []).map(
(item, index) => {
return {
id: index,
resourceId: item.doctorId,
end: item.endTime,
start: item.startTime,
color: '#E7F4F5',
};
}
);
if (res.data) {
this.calendarOptions.events = [].concat(
dutyRosterPreList,
dutyWorkList
);
} }
);
if (res.data) {
this.calendarOptions.events = [].concat(
dutyRosterPreList,
dutyWorkList
);
}
const calendarApi = this.$refs.fullCalendar.getApi(); const calendarApi = this.$refs.fullCalendar.getApi();
this.getWidth = `${ this.getWidth = `${
(this.calendarOptions.resources.length + 1) * 150 (this.calendarOptions.resources.length + 1) * 150
}px`; }px`;
this.getMaxWidth = `${ this.getMaxWidth = `${
this.calendarOptions.resources.length * 150 + 100 this.calendarOptions.resources.length * 150 + 100
}px`; }px`;
calendarApi.gotoDate(this.dateTime); calendarApi.gotoDate(this.dateTime);
console.log(this.calendarOptions.resources); console.log(this.calendarOptions.resources);
console.log(this.calendarOptions.events); console.log(this.calendarOptions.events);
} else { } else {
this.calendarOptions.events = []; this.calendarOptions.events = [];
this.calendarOptions.resources = []; this.calendarOptions.resources = [];
} }
}); });
},
}, },
}; },
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -70,7 +70,7 @@ module.exports = { ...@@ -70,7 +70,7 @@ module.exports = {
port: 8080, port: 8080,
proxy: { proxy: {
'/proxy': { '/proxy': {
target: 'https://uat-sc.yunqueyi.com/', target: 'https://dev-sc.yunqueyi.com/',
ws: false, ws: false,
changeOrigin: true, changeOrigin: true,
secure: true, secure: true,
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册