Browse Source

修改

master
刘灿 7 months ago
parent
commit
b6a0b7b2d6
  1. 6
      src/assets/scss/common.scss
  2. 2
      src/components/H5form/eye-question.vue
  3. 3
      src/components/H5form/fzbl.vue
  4. 2
      src/components/H5form/operation-plan.vue
  5. 8
      src/components/H5form/operation-record.vue
  6. 20
      src/components/H5form/operationed-check-record.vue
  7. 39
      src/components/H5form/qg-dzbl.vue
  8. 4
      src/components/H5form/qgyj.vue
  9. 2
      src/components/H5form/talk-record.vue
  10. 4
      src/mixins/clearContent.js
  11. 13
      src/mixins/signGet.js
  12. 24
      src/page-subspecialty/views/modules/seeDoctor/archives/index.vue
  13. 137
      src/page-subspecialty/views/modules/statisticalManagement/index.vue
  14. 2
      src/page-subspecialty/views/modules/statisticalManagement/jzrc-echarts.vue
  15. 20
      src/page-subspecialty/views/modules/surgicalManagement/operationList/index.vue
  16. 10
      src/page-subspecialty/views/modules/surgicalManagement/schedule/doctor-schedule.vue
  17. 41
      src/page-subspecialty/views/pages/login.vue
  18. 43
      static/js/deepseek.js
  19. 9
      vue.config.js

6
src/assets/scss/common.scss

@ -1473,3 +1473,9 @@ img {
.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner { .el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner {
box-shadow: none !important; box-shadow: none !important;
} }
.colorInputRed {
.el-input__inner,.el-input.is-disabled,.el-input.is-disabled .el-input__inner,.el-dropdown-selfdefine{
color: red;
}
}

2
src/components/H5form/eye-question.vue

@ -102,7 +102,7 @@
</el-form-item> </el-form-item>
</span> </span>
<span class="padding-left-10"> <span class="padding-left-10">
<el-checkbox v-model="formListValue.djdsBX" label="不详" @change="radioChange('djdsCheck')" />
<el-checkbox v-model="formListValue.djdsBx" label="不详" @change="radioChange('djdsCheck')" />
</span> </span>
</div> </div>
</span> </span>

3
src/components/H5form/fzbl.vue

@ -215,6 +215,7 @@ export default {
cbzd: '', cbzd: '',
clyj: '', clyj: '',
createSign: '', createSign: '',
ysSign:'',
signDate: '' signDate: ''
}, },
// 1:/() 2:3:/()4:,5:,6:,8:10: // 1:/() 2:3:/()4:,5:,6:,8:10:
@ -246,7 +247,7 @@ export default {
}, },
// //
getSign() { getSign() {
this.getSystomSign('', 'signDate', 'createCode', 'createName')
this.getSystomSign('ysSign', 'signDate', 'createCode', 'createName', 'createSign')
}, },
// //
async getInfo() { async getInfo() {

2
src/components/H5form/operation-plan.vue

@ -778,7 +778,7 @@ export default {
type: 'success' type: 'success'
}) })
this.saveEidtTitle = '编辑' this.saveEidtTitle = '编辑'
this.statusHandle()
// this.statusHandle() //
setTimeout(() => { setTimeout(() => {
if (this.formListValue.isShowPatientOrDlrSign && this.caOpenStatus) { if (this.formListValue.isShowPatientOrDlrSign && this.caOpenStatus) {

8
src/components/H5form/operation-record.vue

@ -1054,7 +1054,7 @@
<span> <span>
技师签字 技师签字
<span <span
v-if="!formListValue.jsSign && !isSaveSeccess">{{ formListValue.jsName ? formListValue.jsName : '-' }}</span>
v-if="!formListValue.jsSign">{{ formListValue.jsName ? formListValue.jsName : '-' }}</span>
<img v-else :src="formListValue.jsSign" alt="" width="90px"> <img v-else :src="formListValue.jsSign" alt="" width="90px">
</span> </span>
<span style="padding-left:35px;">日期{{ <span style="padding-left:35px;">日期{{
@ -1133,7 +1133,7 @@
<span> <span>
主刀签字 主刀签字
<span <span
v-if="!formListValue.zdSign && !isSaveSeccess">{{ formListValue.zdName ? formListValue.zdName : '-' }}</span>
v-if="!formListValue.zdSign">{{ formListValue.zdName ? formListValue.zdName : '-' }}</span>
<img v-else :src="formListValue.zdSign" alt="" width="90px"> <img v-else :src="formListValue.zdSign" alt="" width="90px">
</span> </span>
<div style="padding-left:35px;"> <div style="padding-left:35px;">
@ -1592,8 +1592,8 @@ export default {
} }
}) })
} }
res.data.jsSign ? '' : this.getSystomSign('jsSign', 'jsSignDate', 'jsCode', 'jsName')
res.data.zdSign ? '' : this.getZdDoctorSign('zdSign', 'zdSignDate', 'zdCode', 'zdName')
res.data.jsName || res.data.jsSign ? '' : this.getSystomSign('jsSign', 'jsSignDate', 'jsCode', 'jsName')
res.data.zdName || res.data.zdSign ? '' : this.getZdDoctorSign('zdSign', 'zdSignDate', 'zdCode', 'zdName')
console.log(this.formListValue) console.log(this.formListValue)
} else { } else {
this.$message.error(res.msg) this.$message.error(res.msg)

20
src/components/H5form/operationed-check-record.vue

@ -343,17 +343,17 @@
</div> </div>
<!-- 眼压 --> <!-- 眼压 -->
<div v-if="scope.row.YanYA.length>0" class="width-100 center"> <div v-if="scope.row.YanYA.length>0" class="width-100 center">
<el-input v-model="formListValue.yyOd1" placeholder="" />/
<el-input v-model="formListValue.yyOd2" placeholder="" />mmHg@
<el-input v-model="formListValue.yyOd1" placeholder="" :class="formListValue.yyOd1 > 21 ? 'colorInputRed' :''"/>/
<el-input v-model="formListValue.yyOd2" placeholder="" :class="formListValue.yyOd2 > 21 ? 'colorInputRed' :''"/>mmHg@
</div> </div>
<!-- 角膜地形图 --> <!-- 角膜地形图 -->
<div v-if="scope.row.JMDXT.length>0" class="left"> <div v-if="scope.row.JMDXT.length>0" class="left">
<div class="width-60"> <div class="width-60">
K2 K2
<el-input v-model="formListValue.jmdxtOd1" placeholder="" />
<el-input v-model="formListValue.jmdxtOd1" placeholder="" :class="formListValue.jmdxtOd1 > 48 ? 'colorInputRed' :''"/>
/ /
K1 K1
<el-input v-model="formListValue.jmdxtOd2" placeholder="" />@
<el-input v-model="formListValue.jmdxtOd2" placeholder="" :class="formListValue.jmdxtOd2 > 48 ? 'colorInputRed' :''"/>@
<el-input v-model="formListValue.jmdxtOd3" placeholder="" /> <el-input v-model="formListValue.jmdxtOd3" placeholder="" />
</div> </div>
</div> </div>
@ -363,7 +363,7 @@
</div> </div>
<!-- 内皮细胞密度/6A --> <!-- 内皮细胞密度/6A -->
<div v-if="scope.row.npxbmd.length>0" class="width-100 center"> <div v-if="scope.row.npxbmd.length>0" class="width-100 center">
<el-input v-model="formListValue.npxbmdOd1" placeholder="" />/
<el-input v-model="formListValue.npxbmdOd1" placeholder="" :class="formListValue.npxbmdOd1 < 2000? 'colorInputRed' :''"/>/
<el-input v-model="formListValue.npxbmdOd2" placeholder="" /> <el-input v-model="formListValue.npxbmdOd2" placeholder="" />
</div> </div>
<!-- OCT上皮/最薄角膜厚度 --> <!-- OCT上皮/最薄角膜厚度 -->
@ -752,17 +752,17 @@
</div> </div>
<!-- 眼压 --> <!-- 眼压 -->
<div v-if="scope.row.YanYA.length>0" class="width-100 center"> <div v-if="scope.row.YanYA.length>0" class="width-100 center">
<el-input v-model="formListValue.yyOs1" placeholder="" />/
<el-input v-model="formListValue.yyOs2" placeholder="" />mmHg@
<el-input v-model="formListValue.yyOs1" placeholder="" :class="formListValue.yyOs1 > 21 ? 'colorInputRed' :''"/>/
<el-input v-model="formListValue.yyOs2" placeholder="" :class="formListValue.yyOs2 > 21 ? 'colorInputRed' :''"/>mmHg@
</div> </div>
<!-- 角膜地形图 --> <!-- 角膜地形图 -->
<div v-if="scope.row.JMDXT.length>0" class="left"> <div v-if="scope.row.JMDXT.length>0" class="left">
<div class="width-60"> <div class="width-60">
K2 K2
<el-input v-model="formListValue.jmdxtOs1" placeholder="" />
<el-input v-model="formListValue.jmdxtOs1" placeholder="" :class="formListValue.jmdxtOs1 > 48 ? 'colorInputRed' :''"/>
/ /
K1 K1
<el-input v-model="formListValue.jmdxtOs2" placeholder="" />@
<el-input v-model="formListValue.jmdxtOs2" placeholder="" :class="formListValue.jmdxtOs2 > 48 ? 'colorInputRed' :''"/>@
<el-input v-model="formListValue.jmdxtOs3" placeholder="" /> <el-input v-model="formListValue.jmdxtOs3" placeholder="" />
</div> </div>
</div> </div>
@ -772,7 +772,7 @@
</div> </div>
<!-- 内皮细胞密度/6A --> <!-- 内皮细胞密度/6A -->
<div v-if="scope.row.npxbmd.length>0" class="width-100 center"> <div v-if="scope.row.npxbmd.length>0" class="width-100 center">
<el-input v-model="formListValue.npxbmdOs1" placeholder="" />/
<el-input v-model="formListValue.npxbmdOs1" placeholder="" :class="formListValue.npxbmdOs1 < 2000? 'colorInputRed' :''"/>/
<el-input v-model="formListValue.npxbmdOs2" placeholder="" /> <el-input v-model="formListValue.npxbmdOs2" placeholder="" />
</div> </div>
<!-- OCT上皮/最薄角膜厚度 --> <!-- OCT上皮/最薄角膜厚度 -->

39
src/components/H5form/qg-dzbl.vue

@ -255,7 +255,8 @@
<el-radio label="有"></el-radio> <el-radio label="有"></el-radio>
<el-radio label="无"></el-radio> <el-radio label="无"></el-radio>
</el-radio-group> </el-radio-group>
<span v-if="formListValue.dyjRadio === '有'" class="width-60">
<span v-if="formListValue.dyjRadio === ''" class="width-60"
:class="formListValue.dyjTimeInput < 14 && formListValue.dyjUnit === '天' ? 'colorInputRed' : ''">
<el-input v-model="formListValue.dyjTimeInput" placeholder="" size="small" <el-input v-model="formListValue.dyjTimeInput" placeholder="" size="small"
class="margin-right-6" /> class="margin-right-6" />
<el-dropdown trigger="click" @command="dropdownHandle($event,'dyjUnit')"> <el-dropdown trigger="click" @command="dropdownHandle($event,'dyjUnit')">
@ -294,7 +295,7 @@
</el-form-item> </el-form-item>
</span> </span>
<span class="padding-left-10"> <span class="padding-left-10">
<el-checkbox v-model="formListValue.djdsBX" label="不详" @change="radioChange('djdsCheck')" />
<el-checkbox v-model="formListValue.djdsBx" label="不详" @change="radioChange('djdsCheck')" />
</span> </span>
</div> </div>
</div> </div>
@ -846,10 +847,10 @@
<div v-if="scope.row.jmdxt.length>0" class="left"> <div v-if="scope.row.jmdxt.length>0" class="left">
<div class="width-60"> <div class="width-60">
K2 K2
<el-input v-model="formListValue.jmdxtOd1" placeholder="" />
<el-input v-model="formListValue.jmdxtOd1" placeholder="" :class="formListValue.jmdxtOd1 > 48 ? 'colorInputRed' :''"/>
/ /
K1 K1
<el-input v-model="formListValue.jmdxtOd2" placeholder="" />@
<el-input v-model="formListValue.jmdxtOd2" placeholder="" :class="formListValue.jmdxtOd1 > 48 ? 'colorInputRed' :''"/>@
<el-input v-model="formListValue.jmdxtOd3" placeholder="" /> <el-input v-model="formListValue.jmdxtOd3" placeholder="" />
</div> </div>
<div class="width-80"> <div class="width-80">
@ -866,17 +867,17 @@
</div> </div>
<!--角膜直径-角膜厚度--> <!--角膜直径-角膜厚度-->
<div v-if="scope.row.jmzjJmhd.length>0" class="width-100 center"> <div v-if="scope.row.jmzjJmhd.length>0" class="width-100 center">
<el-input v-model="formListValue.jmzjOd" placeholder="" /> mm /
<el-input v-model="formListValue.jmhdOd" placeholder="" /> μm
<el-input v-model="formListValue.jmzjOd" placeholder="" :class="formListValue.jmzjOd < 11 ? 'colorInputRed' :''"/> mm /
<el-input v-model="formListValue.jmhdOd" placeholder="" :class="formListValue.jmhdOd < 480 ? 'colorInputRed' :''"/> μm
</div> </div>
<!-- 眼压--> <!-- 眼压-->
<div v-if="scope.row.yanya.length>0" class="width-100 center"> <div v-if="scope.row.yanya.length>0" class="width-100 center">
<el-input v-model="formListValue.yyOd1" placeholder="" />/
<el-input v-model="formListValue.yyOd2" placeholder="" />mmHg@
<el-input v-model="formListValue.yyOd1" placeholder="" :class="formListValue.yyOd1 >21 ? 'colorInputRed' :''"/>/
<el-input v-model="formListValue.yyOd2" placeholder="" :class="formListValue.yyOd2 > 21 ? 'colorInputRed' :''"/>mmHg@
</div> </div>
<!-- 暗瞳直径 --> <!-- 暗瞳直径 -->
<div v-if="scope.row.atzj.length>0" class="width-120 center"> <div v-if="scope.row.atzj.length>0" class="width-120 center">
<el-input v-model="formListValue.atzjOd" placeholder="" /> mm
<el-input v-model="formListValue.atzjOd" placeholder="" :class="formListValue.atzjOd > 7 ? 'colorInputRed' :''"/> mm
</div> </div>
<!-- offset --> <!-- offset -->
<div v-if="scope.row.offset.length>0" class="center width-100"> <div v-if="scope.row.offset.length>0" class="center width-100">
@ -898,7 +899,7 @@
</div> </div>
<!-- 内皮细胞密度/6A --> <!-- 内皮细胞密度/6A -->
<div v-if="scope.row.npxbmd.length>0" class="width-80 center"> <div v-if="scope.row.npxbmd.length>0" class="width-80 center">
<el-input v-model="formListValue.npxbmdOd1" placeholder="" />/mm2 /
<el-input v-model="formListValue.npxbmdOd1" placeholder="" :class="formListValue.npxbmdOd1 < 2000 ? 'colorInputRed' :''"/>/mm2 /
<el-input v-model="formListValue.npxbmdOd2" placeholder="" />% <el-input v-model="formListValue.npxbmdOd2" placeholder="" />%
</div> </div>
<!-- OCT上皮/最薄角膜厚度 --> <!-- OCT上皮/最薄角膜厚度 -->
@ -1295,10 +1296,10 @@
<div v-if="scope.row.jmdxt.length>0" class="left"> <div v-if="scope.row.jmdxt.length>0" class="left">
<div class="width-60"> <div class="width-60">
K2 K2
<el-input v-model="formListValue.jmdxtOs1" placeholder="" />
<el-input v-model="formListValue.jmdxtOs1" placeholder="" :class="formListValue.jmdxtOs1 > 48 ? 'colorInputRed' :''"/>
/ /
K1 K1
<el-input v-model="formListValue.jmdxtOs2" placeholder="" />@
<el-input v-model="formListValue.jmdxtOs2" placeholder="" :class="formListValue.jmdxtOs1 > 48 ? 'colorInputRed' :''"/>@
<el-input v-model="formListValue.jmdxtOs3" placeholder="" /> <el-input v-model="formListValue.jmdxtOs3" placeholder="" />
</div> </div>
<div class="width-80"> <div class="width-80">
@ -1315,17 +1316,17 @@
</div> </div>
<!--角膜直径-角膜厚度--> <!--角膜直径-角膜厚度-->
<div v-if="scope.row.jmzjJmhd.length>0" class="width-100 center"> <div v-if="scope.row.jmzjJmhd.length>0" class="width-100 center">
<el-input v-model="formListValue.jmzjOs" placeholder="" /> mm /
<el-input v-model="formListValue.jmhdOs" placeholder="" /> μm
<el-input v-model="formListValue.jmzjOs" placeholder="" :class="formListValue.jmzjOs < 11 ? 'colorInputRed' :''"/> mm /
<el-input v-model="formListValue.jmhdOs" placeholder="" :class="formListValue.jmhdOs < 480 ? 'colorInputRed' :''"/> μm
</div> </div>
<!-- 眼压--> <!-- 眼压-->
<div v-if="scope.row.yanya.length>0" class="width-100 center"> <div v-if="scope.row.yanya.length>0" class="width-100 center">
<el-input v-model="formListValue.yyOs1" placeholder="" />/
<el-input v-model="formListValue.yyOs2" placeholder="" />mmHg@
<el-input v-model="formListValue.yyOs1" placeholder="" :class="formListValue.yyOs1 >21 ? 'colorInputRed' :''"/>/
<el-input v-model="formListValue.yyOs2" placeholder="" :class="formListValue.yyOs1 >21 ? 'colorInputRed' :''"/>mmHg@
</div> </div>
<!-- 暗瞳直径 --> <!-- 暗瞳直径 -->
<div v-if="scope.row.atzj.length>0" class="width-120 center"> <div v-if="scope.row.atzj.length>0" class="width-120 center">
<el-input v-model="formListValue.atzjOs" placeholder="" /> mm
<el-input v-model="formListValue.atzjOs" placeholder="" :class="formListValue.atzjOs > 7 ? 'colorInputRed' :''"/> mm
</div> </div>
<!-- offset --> <!-- offset -->
<div v-if="scope.row.offset.length>0" class="center width-100"> <div v-if="scope.row.offset.length>0" class="center width-100">
@ -1347,7 +1348,7 @@
</div> </div>
<!-- 内皮细胞密度/6A --> <!-- 内皮细胞密度/6A -->
<div v-if="scope.row.npxbmd.length>0" class="width-80 center"> <div v-if="scope.row.npxbmd.length>0" class="width-80 center">
<el-input v-model="formListValue.npxbmdOs1" placeholder="" />/mm2 /
<el-input v-model="formListValue.npxbmdOs1" placeholder="" :class="formListValue.npxbmdOs1 < 2000 ? 'colorInputRed' :''"/>/mm2 /
<el-input v-model="formListValue.npxbmdOs2" placeholder="" />% <el-input v-model="formListValue.npxbmdOs2" placeholder="" />%
</div> </div>
<!-- OCT上皮/最薄角膜厚度 --> <!-- OCT上皮/最薄角膜厚度 -->
@ -2082,7 +2083,7 @@ export default {
// //
djdsOd: '', djdsOd: '',
djdsOs: '', djdsOs: '',
djdsBX: '',
djdsBx: '',
// //
xjpzTimeInput: '', xjpzTimeInput: '',
xjpzTimeUnit: '年', xjpzTimeUnit: '年',

4
src/components/H5form/qgyj.vue

@ -131,7 +131,7 @@
</el-form-item> </el-form-item>
</span> </span>
<span class="padding-left-10"> <span class="padding-left-10">
<el-checkbox v-model="formListValue.djdsBX" label="不详" @change="radioChange('djdsCheck')" />
<el-checkbox v-model="formListValue.djdsBx" label="不详" @change="radioChange('djdsCheck')" />
</span> </span>
</div> </div>
</span> </span>
@ -677,7 +677,7 @@ export default {
// //
djdsOd: '', djdsOd: '',
djdsOs: '', djdsOs: '',
djdsBX: '',
djdsBx: '',
// //
yxyjRadio: '', yxyjRadio: '',
// ok // ok

2
src/components/H5form/talk-record.vue

@ -886,7 +886,7 @@ export default {
message: '您已保存成功', message: '您已保存成功',
type: 'success' type: 'success'
}) })
this.statusHandle()
// this.statusHandle() //
this.getSendCaStatus() this.getSendCaStatus()
// this.$store.commit('clearSignDate', 'lhOperaRecord') // this.$store.commit('clearSignDate', 'lhOperaRecord')
} else { } else {

4
src/mixins/clearContent.js

@ -75,10 +75,10 @@ export default {
this.formListValue.jzsInput = '' this.formListValue.jzsInput = ''
} }
if(text === 'djdsCheck') { if(text === 'djdsCheck') {
console.log('djdsCheck',this.formListValue.djdsBX);
console.log('djdsCheck',this.formListValue.djdsBx);
this.formListValue.djdsOd = '' this.formListValue.djdsOd = ''
this.formListValue.djdsOs = '' this.formListValue.djdsOs = ''
this.formListValue.djdsIsDisabled = this.formListValue.djdsBX
this.formListValue.djdsIsDisabled = this.formListValue.djdsBx
} }
}, },
// 复选判断清除内容 // 复选判断清除内容

13
src/mixins/signGet.js

@ -22,21 +22,23 @@ export default {
}) })
if (res.code === 0) { if (res.code === 0) {
console.log('获取授权签字ca已开启'); console.log('获取授权签字ca已开启');
this.getCaUserSignImg(sign, date, code, name, res.data, '', ()=>{
// console.log(123123123);
loading.close() loading.close()
this.getCaUserSignImg(sign, date, code, name, res.data)
})
} else { } else {
this.$message.error(res.msg) this.$message.error(res.msg)
loading.close() loading.close()
} }
}, },
// 获取系统签字 // 获取系统签字
getSystomSign(sign, date, code, name) {
getSystomSign(sign, date, code, name,createSign) {
console.log(date) console.log(date)
const userData = JSON.parse(window.localStorage.getItem('qg-userData')) const userData = JSON.parse(window.localStorage.getItem('qg-userData'))
this.getCaUserSignImg(sign, date, code, name, userData)
this.getCaUserSignImg(sign, date, code, name, userData, createSign)
}, },
// 获取ca签名图片 // 获取ca签名图片
async getCaUserSignImg(sign, date, code, name, resData) {
async getCaUserSignImg(sign, date, code, name, resData, createSign, callback) {
console.log('8888888888'); console.log('8888888888');
const { data: res } = await this.$http.get('/hz_quguang/caSign/getCaUserSignImg', { const { data: res } = await this.$http.get('/hz_quguang/caSign/getCaUserSignImg', {
params: { params: {
@ -47,9 +49,12 @@ export default {
if (res.code === 0) { if (res.code === 0) {
date ? this.formListValue[date] = this.$moment().format('YYYY-MM-DD') : '' date ? this.formListValue[date] = this.$moment().format('YYYY-MM-DD') : ''
sign ? this.formListValue[sign] = res.data.signImgBase : '' sign ? this.formListValue[sign] = res.data.signImgBase : ''
createSign ? this.formListValue[createSign] = res.data.signImgBase : ''
code ? this.formListValue[code] = res.data.employeeId : '' code ? this.formListValue[code] = res.data.employeeId : ''
name ? this.formListValue[name] = res.data.realName : '' name ? this.formListValue[name] = res.data.realName : ''
callback ? callback() : ''
} else { } else {
callback ? callback() : ''
this.$message.error(res.msg) this.$message.error(res.msg)
} }
}, },

24
src/page-subspecialty/views/modules/seeDoctor/archives/index.vue

@ -94,9 +94,10 @@
<span v-else>{{ commeFormItem.name }}</span> <span v-else>{{ commeFormItem.name }}</span>
</div> </div>
<i <i
v-if="!positionName.join().includes('医辅') &&
v-if="
positionName.join().includes('医辅') ||
(positionName.join().includes('护士') && commeFormItem.name==='屈光预检') || (positionName.join().includes('护士') && commeFormItem.name==='屈光预检') ||
positionName.join().includes('医生') "
positionName.join().includes('医生')"
class="el-icon-plus comonForm-icon" class="el-icon-plus comonForm-icon"
/> />
</div> </div>
@ -110,7 +111,7 @@
<span class="padding-right-10">{{ patientInfoObj.patientId }}</span> <span class="padding-right-10">{{ patientInfoObj.patientId }}</span>
<span class="padding-right-10">{{ patientInfoObj.patientName }}</span> <span class="padding-right-10">{{ patientInfoObj.patientName }}</span>
<span class="padding-right-10">{{ patientInfoObj.patientBirthday }}</span> <span class="padding-right-10">{{ patientInfoObj.patientBirthday }}</span>
<span style="color:yellow;font-size:24px;">{{ patientInfoObj.patientAge < 18 ? '未满18周岁' :'' }}</span>
<span style="color:yellow;font-size:24px;">{{ patientInfoObj.patientAge < 18 ? '未满18周岁' : (patientInfoObj.patientAge > 35 ? '大于35岁' : '') }}</span>
</div> </div>
<div class="content-right-CRF"> <div class="content-right-CRF">
<div class="printFather"> <div class="printFather">
@ -633,13 +634,16 @@ export default {
// 1 // 1
// 2 // 2
// console.log(item) // console.log(item)
if (this.positionName.join().includes('医辅')) {
return this.$message({
showClose: true,
message: '您的角色暂无新增表单权限',
type: 'warning'
})
} else if (this.positionName.join().includes('护士') && item.name !== '屈光预检') {
// if (this.positionName.join().includes('')) {
// return this.$message({
// showClose: true,
// message: '',
// type: 'warning'
// })
// }
if (this.positionName.join().includes('护士') && item.name !== '屈光预检') {
console.log('this.positionName',this.positionName);
return this.$message({ return this.$message({
showClose: true, showClose: true,
message: '您的角色只有新增屈光预检的权限', message: '您的角色只有新增屈光预检的权限',

137
src/page-subspecialty/views/modules/statisticalManagement/index.vue

@ -71,69 +71,77 @@
<el-row :gutter="16" style="height:100%"> <el-row :gutter="16" style="height:100%">
<span class="statics-title-date"> <span class="statics-title-date">
<p class="statics-title">手术量统计</p> <p class="statics-title">手术量统计</p>
<el-select v-model="operaTj.doctorId" placeholder="医生" size="small" clearable @clear="newOperaCensus()"
@change="newOperaCensus()" style="margin-right:20px;">
<el-select v-model="operaTj.doctorId" placeholder="医生" size="small" clearable @clear="operaRefresh()"
@change="operaRefresh()" style="margin-right:20px;">
<el-option v-for="(item,index) in doctorList" :key="index" :label="item.doctorName" <el-option v-for="(item,index) in doctorList" :key="index" :label="item.doctorName"
:value="item.doctorCode" /> :value="item.doctorCode" />
</el-select> </el-select>
<el-date-picker style="margin-right:20px;" v-model="operaStartEndTime" size="small" type="daterange" <el-date-picker style="margin-right:20px;" v-model="operaStartEndTime" size="small" type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd"
@change="operaDateChange" /> @change="operaDateChange" />
<el-radio-group v-model="operaTj.type" size="mini" @change="newOperaCensus()">
<el-radio-group v-model="operaTj.type" size="mini" @change="radioOperaTypeChange()">
<el-radio-button label="3"></el-radio-button> <el-radio-button label="3"></el-radio-button>
<el-radio-button label="2"></el-radio-button> <el-radio-button label="2"></el-radio-button>
<el-radio-button label="1"></el-radio-button> <el-radio-button label="1"></el-radio-button>
</el-radio-group> </el-radio-group>
<el-button style="margin-left:30px;" type="primary">导出</el-button>
<el-button style="margin-left:30px;" type="primary" size="mini">导出</el-button>
</span> </span>
<el-col :span="12" style="height:100%;">
<el-col :span="12" style="height:90%;">
<div class="operation-volume-echarts"> <div class="operation-volume-echarts">
<operation-volume-echarts v-if="operationVolumeHeight" id-name="operation-volume" <operation-volume-echarts v-if="operationVolumeHeight" id-name="operation-volume"
:chart-data="operationVolumeList" :height="operationVolumeHeight" ref="operaRef" /> :chart-data="operationVolumeList" :height="operationVolumeHeight" ref="operaRef" />
</div> </div>
</el-col> </el-col>
<el-col :span="12">
<el-table :data="operaCensusDataList">
<el-col :span="12" style="height:90%;">
<el-table :data="operaCensusDataList" :height="operationVolumeHeight1 - 45">
<el-table-column prop="doctorName" label="医生姓名" width="90"></el-table-column> <el-table-column prop="doctorName" label="医生姓名" width="90"></el-table-column>
<el-table-column prop="operaDate" label="手术时间" width="110"></el-table-column> <el-table-column prop="operaDate" label="手术时间" width="110"></el-table-column>
<el-table-column prop="operaName" label="手术名称"></el-table-column> <el-table-column prop="operaName" label="手术名称"></el-table-column>
<el-table-column prop="patientName" label="患者姓名" width="90"></el-table-column> <el-table-column prop="patientName" label="患者姓名" width="90"></el-table-column>
<el-table-column prop="patientId" label="PID" width="90"></el-table-column>
<el-table-column prop="patientId" label="PID" width="120"></el-table-column>
</el-table> </el-table>
<el-pagination background layout="total, prev, pager, next" :total="opearTotal" :page-size="operaTj.limit"
:current-page.sync="operaTj.page" @current-change="pageCurrentChangeHandle" />
<el-pagination background layout="total, prev, pager, next" :total="opearTotal" :page-size="operaTj.limit" style="margin-top:10px;"
:current-page.sync="operaTj.page" @current-change="operaPageCurrentChangeHandle" />
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<div class="statics-bottom"> <div class="statics-bottom">
<el-row :gutter="16"> <el-row :gutter="16">
<span class="doctor-ssl-title-date" style="margin-top:10px;">
<span class="jzrc-title-date" style="margin-top:10px;">
<p style="margin-right:10px;font-size:20px;">就诊人次统计</p> <p style="margin-right:10px;font-size:20px;">就诊人次统计</p>
<el-select v-model="jzrcTj.doctorId" placeholder="医生" size="small" clearable @clear="newJzrcCensus()"
@change="newJzrcCensus()" style="margin-right:20px;">
<el-select v-model="jzrcTj.doctorId" placeholder="医生" size="small" clearable @clear="jzrcRefresh()"
@change="jzrcRefresh()" style="margin-right:20px;">
<el-option v-for="(item,index) in doctorList" :key="index" :label="item.doctorName" <el-option v-for="(item,index) in doctorList" :key="index" :label="item.doctorName"
:value="item.doctorCode" /> :value="item.doctorCode" />
</el-select> </el-select>
<el-date-picker style="margin-right:20px;" v-model="jzrcStartEndTime" size="small" type="daterange" <el-date-picker style="margin-right:20px;" v-model="jzrcStartEndTime" size="small" type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd"
@change="operaDateChange" />
<el-radio-group v-model="jzrcTj.type" size="mini" @change="newJzrcCensus">
@change="jzrcDateChange" />
<el-radio-group v-model="jzrcTj.type" size="mini" @change="radioJzrcTypeChange">
<el-radio-button label="3">本周</el-radio-button> <el-radio-button label="3">本周</el-radio-button>
<el-radio-button label="2">本月</el-radio-button> <el-radio-button label="2">本月</el-radio-button>
<el-radio-button label="1">本年</el-radio-button> <el-radio-button label="1">本年</el-radio-button>
</el-radio-group> </el-radio-group>
<el-button style="margin-left:30px;" type="primary">导出</el-button>
<el-button style="margin-left:30px;" type="primary" size="mini">导出</el-button>
</span> </span>
<el-col :span="12"> <el-col :span="12">
<div class="doctor-ssl">
<div class="doctor-ssl-echearts">
<doctor-ssl-echarts v-if="doctorSSLEchartsHeight" id-name="doctor-ssl-bar" :chart-data="doctorSSLBarList"
:height="doctorSSLEchartsHeight" />
<div class="jzrc">
<div class="jzrc-echearts">
<jzrc-echarts v-if="jzrcEchartsHeight" id-name="jzrc-bar" :chart-data="jzrcCensusList"
:height="jzrcEchartsHeight" />
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
123
<el-table :data="jzrcCensusDataList" :height="jzrcEchartsHeight1 - 45">
<el-table-column prop="patientId" label="PID"></el-table-column>
<el-table-column prop="patientName" label="患者姓名" ></el-table-column>
<el-table-column prop="patientSex" label="患者性别"></el-table-column>
<el-table-column prop="patientBirthday" label="患者生日" ></el-table-column>
<el-table-column prop="doctorName" label="医生姓名"></el-table-column>
</el-table>
<el-pagination background layout="total, prev, pager, next" :total="jzrcTotal" :page-size="jzrcTj.limit" style="margin-top:10px;"
:current-page.sync="jzrcTj.page" @current-change="jzrcPageCurrentChangeHandle" />
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
@ -142,21 +150,23 @@
<script> <script>
import operationVolumeEcharts from './operation-volume-echarts.vue' import operationVolumeEcharts from './operation-volume-echarts.vue'
import ssfxEcharts from './ssfx-echarts.vue' import ssfxEcharts from './ssfx-echarts.vue'
import doctorSslEcharts from './doctor-ssl-echarts.vue'
import jzrcEcharts from './jzrc-echarts.vue'
import wjtjEcharts from './wjtj-echarts.vue' import wjtjEcharts from './wjtj-echarts.vue'
export default { export default {
components: { components: {
operationVolumeEcharts, operationVolumeEcharts,
ssfxEcharts, ssfxEcharts,
doctorSslEcharts,
jzrcEcharts,
wjtjEcharts wjtjEcharts
}, },
data() { data() {
return { return {
todayShow: false, todayShow: false,
operationVolumeHeight: '', operationVolumeHeight: '',
operationVolumeHeight1:'',
ssfxEchartsHeight: '', ssfxEchartsHeight: '',
doctorSSLEchartsHeight: '',
jzrcEchartsHeight: '',
jzrcEchartsHeight1:'',
wjtjEchartsHeight: '', wjtjEchartsHeight: '',
todayCensusList: {}, todayCensusList: {},
operationVolumeList: [], operationVolumeList: [],
@ -164,6 +174,7 @@ export default {
jzrcCensusList: [], jzrcCensusList: [],
jzrcCensusDataList: [], jzrcCensusDataList: [],
opearTotal: 0, opearTotal: 0,
jzrcTotal: 0,
ssfxPieList: [], ssfxPieList: [],
doctorSSLBarList: [], doctorSSLBarList: [],
operaStartEndTime: '', operaStartEndTime: '',
@ -198,9 +209,11 @@ export default {
this.getDoctorList() this.getDoctorList()
}, },
mounted() { mounted() {
this.operationVolumeHeight = document.querySelector('.operation-volume-echarts') ? document.querySelector('.operation-volume-echarts').offsetHeight + 'px' : ''
this.operationVolumeHeight = document.querySelector('.operation-volume-echarts') ? (document.querySelector('.operation-volume-echarts').offsetHeight) + 'px' : ''
this.operationVolumeHeight1 = document.querySelector('.operation-volume-echarts') ? (document.querySelector('.operation-volume-echarts').offsetHeight) : ''
this.ssfxEchartsHeight = document.querySelector('.ssfx-echarts') ? document.querySelector('.ssfx-echarts').offsetHeight + 'px' : '' this.ssfxEchartsHeight = document.querySelector('.ssfx-echarts') ? document.querySelector('.ssfx-echarts').offsetHeight + 'px' : ''
this.doctorSSLEchartsHeight = document.querySelector('.doctor-ssl-echearts') ? document.querySelector('.doctor-ssl-echearts').offsetHeight + 'px' : ''
this.jzrcEchartsHeight = document.querySelector('.jzrc-echearts') ? (document.querySelector('.jzrc-echearts').offsetHeight - 40) + 'px' : ''
this.jzrcEchartsHeight1 = document.querySelector('.jzrc-echearts') ? (document.querySelector('.jzrc-echearts').offsetHeight - 40) : ''
this.wjtjEchartsHeight = document.querySelector('.wjtj-echarts') ? document.querySelector('.wjtj-echarts').offsetHeight + 'px' : '' this.wjtjEchartsHeight = document.querySelector('.wjtj-echarts') ? document.querySelector('.wjtj-echarts').offsetHeight + 'px' : ''
}, },
methods: { methods: {
@ -213,10 +226,6 @@ export default {
this.$message.error(res.msg) this.$message.error(res.msg)
} }
}, },
newOperaCensus() {
this.getOperaCensus()
this.getOperaCensusDataList()
},
// //
async getTodayCensus() { async getTodayCensus() {
this.todayShow = false this.todayShow = false
@ -230,12 +239,25 @@ export default {
this.todayCensusList.surveyCompare = survey[1].value - survey[0].value this.todayCensusList.surveyCompare = survey[1].value - survey[0].value
this.todayShow = true this.todayShow = true
}, },
//
// -
operaRefresh() {
this.getOperaCensus()
this.getOperaCensusDataList()
},
// -
radioOperaTypeChange() {
this.operaTj.beginDate = ''
this.operaTj.endDate = ''
this.operaStartEndTime = ''
this.operaRefresh()
},
// -
operaDateChange(e) { operaDateChange(e) {
console.log('e', e);
console.log('手术量e', e);
this.operaTj.type = ''
this.operaTj.beginDate = e ? e[0] : '' this.operaTj.beginDate = e ? e[0] : ''
this.operaTj.endDate = e ? e[1] : '' this.operaTj.endDate = e ? e[1] : ''
this.newOperaCensus()
this.operaRefresh()
}, },
// echarts // echarts
// typebeginDateendDate // typebeginDateendDate
@ -263,28 +285,37 @@ export default {
this.$message.error(res.msg) this.$message.error(res.msg)
} }
}, },
// ,
pageCurrentChangeHandle(val) {
// - ,
operaPageCurrentChangeHandle(val) {
this.operaTj.page = val this.operaTj.page = val
this.getOperaCensusDataList() this.getOperaCensusDataList()
}, },
newJzrcCensus() {
// -
jzrcRefresh() {
this.getJzrcCensus() this.getJzrcCensus()
this.getJzrcCensusDataList() this.getJzrcCensusDataList()
}, },
//
// -
radioJzrcTypeChange() {
this.jzrcTj.beginDate = ''
this.jzrcTj.endDate = ''
this.jzrcStartEndTime = ''
this.jzrcRefresh()
},
// -
jzrcDateChange(e) { jzrcDateChange(e) {
console.log('e', e);
console.log('就诊人次e', e);
this.jzrcTj.beginDate = e ? e[0] : '' this.jzrcTj.beginDate = e ? e[0] : ''
this.jzrcTj.endDate = e ? e[1] : '' this.jzrcTj.endDate = e ? e[1] : ''
this.newJzrcCensus()
this.jzrcTj.type = ''
this.jzrcRefresh()
}, },
// echarts // echarts
// typebeginDateendDate // typebeginDateendDate
// beginDateendDatetype // beginDateendDatetype
async getJzrcCensus() { async getJzrcCensus() {
const { data: res } = await this.$http.get(`/hz_quguang/data/analyse/jzrcCensus`, { const { data: res } = await this.$http.get(`/hz_quguang/data/analyse/jzrcCensus`, {
params: this.operaTj
params: this.jzrcTj
}) })
if (res.code === 0) { if (res.code === 0) {
this.jzrcCensusList = res.data this.jzrcCensusList = res.data
@ -293,10 +324,10 @@ export default {
this.$message.error(res.msg) this.$message.error(res.msg)
} }
}, },
// table
// table
async getJzrcCensusDataList() { async getJzrcCensusDataList() {
const { data: res } = await this.$http.get(`/hz_quguang/data/analyse/jzrcCensusDataList`, { const { data: res } = await this.$http.get(`/hz_quguang/data/analyse/jzrcCensusDataList`, {
params: this.operaTj
params: this.jzrcTj
}) })
if (res.code === 0) { if (res.code === 0) {
this.jzrcCensusDataList = res.data.list this.jzrcCensusDataList = res.data.list
@ -305,6 +336,11 @@ export default {
this.$message.error(res.msg) this.$message.error(res.msg)
} }
}, },
// - ,
jzrcPageCurrentChangeHandle(val) {
this.operaTj.page = val
this.getJzrcCensusDataList()
},
} }
} }
</script> </script>
@ -358,12 +394,12 @@ export default {
// height:calc(100vh - 430px); // height:calc(100vh - 430px);
height: 40%; height: 40%;
.operation-volume-echarts { .operation-volume-echarts {
height: 90%;
height: 100%;
} }
} }
.statics-title-date, .statics-title-date,
.ssfx-title-date, .ssfx-title-date,
.doctor-ssl-title-date,
.jzrc-title-date,
.wjtj-title-date { .wjtj-title-date {
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -378,21 +414,20 @@ export default {
.statics-bottom { .statics-bottom {
// height: 260px; // height: 260px;
background: #fff; background: #fff;
height: 55%;
height: 50%;
.el-row, .el-row,
.el-col { .el-col {
height: 100%; height: 100%;
} }
} }
.ssfx, .ssfx,
.doctor-ssl,
.jzrc,
.wjtj { .wjtj {
height: 100%; height: 100%;
background: #fff; background: #fff;
padding: 16px;
} }
.ssfx-echarts, .ssfx-echarts,
.doctor-ssl-echearts,
.jzrc-echearts,
.wjtj-echarts { .wjtj-echarts {
height: 90%; height: 90%;
} }
@ -411,5 +446,11 @@ export default {
.el-radio-button:first-child .el-radio-button__inner { .el-radio-button:first-child .el-radio-button__inner {
border-left: none; border-left: none;
} }
.el-pagination {
margin-top:0;
}
.el-table--medium .el-table__cell {
padding: 6px 0;
}
} }
</style> </style>

2
src/page-subspecialty/views/modules/statisticalManagement/doctor-ssl-echarts.vue → src/page-subspecialty/views/modules/statisticalManagement/jzrc-echarts.vue

@ -63,7 +63,7 @@ export default {
left: '3%', left: '3%',
right: '4%', right: '4%',
bottom: '0', bottom: '0',
top: '16%',
top: '5%',
containLabel: true containLabel: true
}, },
// series: this.seriesList // series: this.seriesList

20
src/page-subspecialty/views/modules/surgicalManagement/operationList/index.vue

@ -127,8 +127,9 @@
<span <span
v-show="scope.row.status===-4 && scope.row.syncStatus===1 && today === $options.filters.dateFilterTwo( scope.row.operaDate )" v-show="scope.row.status===-4 && scope.row.syncStatus===1 && today === $options.filters.dateFilterTwo( scope.row.operaDate )"
class="call" @click="signHandle(scope.row)">签到</span> class="call" @click="signHandle(scope.row)">签到</span>
<span class="call" @click="ytFinish(scope.row)" v-show="scope.row.status == -3">验谈完毕</span>
<span class="call" @click="browseClick(scope.row)">档案</span> <span class="call" @click="browseClick(scope.row)">档案</span>
<!-- syncStatus=1叫号 =0不叫号 -->
<!-- 已预约syncStatus的排程同步状态0:未同步1:已同步 0的时候可修改 1的时候不可修改 -->
<span <span
v-show="(scope.row.status===0 || scope.row.status===1) && scope.row.syncStatus===1 && today === $options.filters.dateFilterTwo( scope.row.operaDate )" v-show="(scope.row.status===0 || scope.row.status===1) && scope.row.syncStatus===1 && today === $options.filters.dateFilterTwo( scope.row.operaDate )"
class="call" @click="callHandle(scope.row)">呼叫</span> class="call" @click="callHandle(scope.row)">呼叫</span>
@ -518,6 +519,23 @@ export default {
this.$message.error(res.msg) this.$message.error(res.msg)
} }
}, },
//
async ytFinish(scopeRow) {
const { data: res } = await this.$http.post('/hz_quguang/pda/updateOperaStatus', {
operaId: scopeRow.id,
status: 0
})
if(res.code === 0) {
this.$message({
message: '签到成功',
type: 'success',
onClose: () => {
}
})
} else {
this.$message.error(res.msg)
}
},
// //
async callHandle(scopeRow) { async callHandle(scopeRow) {
const { data: res } = await this.$http.get(`/hz_quguang/his/opera/schedule/callPatient/${scopeRow.id}`) const { data: res } = await this.$http.get(`/hz_quguang/his/opera/schedule/callPatient/${scopeRow.id}`)

10
src/page-subspecialty/views/modules/surgicalManagement/schedule/doctor-schedule.vue

@ -95,7 +95,7 @@
class="show-plus-one" class="show-plus-one"
> >
<p @click="numberMangeClick(item,weekInfoItem,'上午','预约详情')">详情</p> <p @click="numberMangeClick(item,weekInfoItem,'上午','预约详情')">详情</p>
<p @click="numberMangeClick(item,weekInfoItem,'上午','号源管理')">号源管理</p>
<p @click="numberMangeClick(item,weekInfoItem,'上午','号源管理')" v-show="positionName.includes('护士长')">号源管理</p>
</div> </div>
<div <div
v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='morning'&& title =='plus'" v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='morning'&& title =='plus'"
@ -145,7 +145,7 @@
class="show-plus-one" class="show-plus-one"
> >
<p @click="numberMangeClick(item,weekInfoItem,'下午','预约详情')">详情</p> <p @click="numberMangeClick(item,weekInfoItem,'下午','预约详情')">详情</p>
<p @click="numberMangeClick(item,weekInfoItem,'下午','号源管理')">号源管理</p>
<p @click="numberMangeClick(item,weekInfoItem,'下午','号源管理')" v-show="positionName.includes('护士长')">号源管理</p>
</div> </div>
<div <div
v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='after' && title =='plus'" v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='after' && title =='plus'"
@ -248,7 +248,9 @@ export default {
doctorList: [], doctorList: [],
patientList: [], patientList: [],
rowListObj: {}, rowListObj: {},
operaTypeList: []
operaTypeList: [],
userData:{},
positionName:''
}; };
}, },
filters: { filters: {
@ -284,6 +286,8 @@ export default {
created() { created() {
this.initData(null); this.initData(null);
this.getScheduleList() this.getScheduleList()
window.localStorage.getItem('qg-userData') ? this.userData = JSON.parse(window.localStorage.getItem('qg-userData')) : ''
this.positionName = this.userData.positionList && this.userData.positionList.length > 0 ? this.userData.positionList.map(item => item.positionName) : []
}, },
methods: { methods: {

41
src/page-subspecialty/views/pages/login.vue

@ -12,13 +12,13 @@
<p class="main-title">杭州院区屈光信息系统</p> <p class="main-title">杭州院区屈光信息系统</p>
<p class="subtitle-title">登录</p> <p class="subtitle-title">登录</p>
</div> </div>
<el-form
ref="dataForm"
:model="dataForm"
:rules="dataRule"
status-icon
@keyup.enter.native="dataFormSubmitHandle()"
>
<!-- <div>
<el-input v-model="inputText" placeholder="请输入" />
<el-button @click="getResponse" type="primary">获取回答</el-button>
<div>{{ answer }}</div>
</div> -->
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" status-icon
@keyup.enter.native="dataFormSubmitHandle()">
<!-- 用户名 --> <!-- 用户名 -->
<el-form-item prop="account"> <el-form-item prop="account">
<el-input v-model="dataForm.account" placeholder="请输入工号" /> <el-input v-model="dataForm.account" placeholder="请输入工号" />
@ -44,6 +44,7 @@
</el-form> </el-form>
<p class="tips">没有账号? 请联系管理员</p> <p class="tips">没有账号? 请联系管理员</p>
</div> </div>
<div class="login-footer"> <div class="login-footer">
<p class="copyright">南京慧目信息技术有限公司 版权所有</p> <p class="copyright">南京慧目信息技术有限公司 版权所有</p>
</div> </div>
@ -56,6 +57,7 @@ import debounce from 'lodash/debounce'
import { messages } from '@/i18n' import { messages } from '@/i18n'
import { getUUID } from '@/utils' import { getUUID } from '@/utils'
import setPassword from '@/page-subspecialty/views/pages/setPassword' import setPassword from '@/page-subspecialty/views/pages/setPassword'
// import { getDeepseekResponse } from '../../../../static/js/deepseek.js'
export default { export default {
components: { components: {
setPassword setPassword
@ -70,6 +72,8 @@ export default {
uuid: '', uuid: '',
captcha: '' captcha: ''
}, },
inputText: '',
answer: '',
setPasswordVisible: false setPasswordVisible: false
} }
}, },
@ -101,8 +105,25 @@ export default {
} }
}) })
}, 500) }, 500)
}, },
methods: { methods: {
// async fetchData() {
// const result = await getDeepseekResponse('Hello');
// console.log('result',result);
// },
// async getResponse() {
// try {
// const res = await getDeepseekResponse({
// prompt: this.inputText,
// stream: false
// });
// this.answer = res.data.response;
// } catch (error) {
// console.error(':', error.response?.data || error.message);
// }
// },
// //
async getCaptcha() { async getCaptcha() {
console.log(process.env.VUE_APP_LOGIN_URL) console.log(process.env.VUE_APP_LOGIN_URL)
@ -111,7 +132,7 @@ export default {
this.captchaPath = res.data this.captchaPath = res.data
}, },
// //
dataFormSubmitHandle: debounce(function() {
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (!valid) { if (!valid) {
return false return false
@ -184,12 +205,12 @@ export default {
.main-title { .main-title {
font-size: 30px; font-size: 30px;
margin-bottom: 10px; margin-bottom: 10px;
color:#1E79FF;
color: #1e79ff;
font-weight: 700; font-weight: 700;
} }
.subtitle-title { .subtitle-title {
font-size: 24px; font-size: 24px;
color: #11305C;
color: #11305c;
} }
} }
.tips { .tips {

43
static/js/deepseek.js

@ -0,0 +1,43 @@
// import axios from 'axios';
// const DEEPSEEK_API_URL = 'http://localhost:11434'; // 实际的 DeepSeek API 地址
// const DEEPSEEK_API_KEY = 'sk-eff330c7a8664ddaaba523ba9bf0226a'; // 替换为你的 DeepSeek API Key
// // 创建 axios 实例
// const deepseekClient = axios.create({
// baseURL: DEEPSEEK_API_URL,
// timeout: 60000, // 超时时间延长至60秒‌
// headers: {
// 'Authorization': `Bearer ${DEEPSEEK_API_KEY}`,
// 'Content-Type': 'application/json',
// },
// });
// // 示例:发送聊天请求‌:ml-citation{ref="4" data="citationList"}
// export const getDeepseekResponse = async (prompt) => {
// try {
// const response = await deepseekClient.post('/chat/completions', {
// model: "deepseek-r1:1.5b",
// messages: [{ role: "user", content: prompt }]
// });
// return response.data.choices.message.content;
// } catch (error) {
// console.error('API Error:', error);
// return null;
// }
// };
import axios from 'axios';
const ollamaClient = axios.create({
baseURL: '/ollama',
timeout: 60000 // 超时时间延长至60秒‌:ml-citation{ref="3,7" data="citationList"}
});
export const getDeepseekResponse = (params) => {
return ollamaClient.post('/api/generate', {
model: 'deepseek-r1:1.5b', // 需与本地部署模型名称一致‌:ml-citation{ref="5,6" data="citationList"}
prompt: params.prompt,
stream: params.stream || false
});
};

9
vue.config.js

@ -63,7 +63,14 @@ module.exports = {
pathRewrite: { // 路径重写 pathRewrite: { // 路径重写
'^/hz_quguang': '/hz_quguang' '^/hz_quguang': '/hz_quguang'
} }
}
},
// '/ollama': {
// target: 'http://localhost:11434',
// changOrigin: true, // 允许跨域
// pathRewrite: {
// '^/ollama': ''
// },
// }
} }
}, },
configureWebpack: { configureWebpack: {

Loading…
Cancel
Save