提交 fec6c83b 编写于 作者: wenxuan.liang's avatar wenxuan.liang

预约详情页和退款页面

上级 6c61fa4e
......@@ -2755,12 +2755,14 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
......@@ -2775,17 +2777,20 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"core-util-is": {
"version": "1.0.2",
......@@ -2902,7 +2907,8 @@
"inherits": {
"version": "2.0.4",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"ini": {
"version": "1.3.5",
......@@ -2914,6 +2920,7 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
......@@ -2928,6 +2935,7 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
......@@ -2935,12 +2943,14 @@
"minimist": {
"version": "1.2.5",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"minipass": {
"version": "2.9.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
......@@ -2959,6 +2969,7 @@
"version": "0.5.3",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"minimist": "^1.2.5"
}
......@@ -3020,7 +3031,8 @@
"npm-normalize-package-bin": {
"version": "1.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"npm-packlist": {
"version": "1.4.8",
......@@ -3048,7 +3060,8 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"object-assign": {
"version": "4.1.1",
......@@ -3060,6 +3073,7 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
......@@ -3173,6 +3187,7 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
......
......@@ -57,7 +57,7 @@ export default {
getToken() {
let href = window.location.href;
let offset = href.indexOf("?");
//localStorage.setItem('storageToken','CBC0F7B0C9D34806958B18E23C881A09')
localStorage.setItem('storageToken','475DB3D057AD489D81FE4E4DAB747B08')
if (offset !== -1) {
let paramStr = href.substring(offset + 1, href.length);
let pars = base64decode(paramStr);
......
<template>
<div class="info-pad-container">
<div class="title">{{option.title}}</div>
<div class="item" v-for="item in option.contentList" :key="item.key">
<div class="key">{{item.key}}</div><div class="dot">{{option.isShowDot ? ':' : ''}}</div>
<div class="value">{{item.value}}</div>
</div>
</div>
</template>
<script>
export default {
/**
* option: {
* isShowDot: false, -->是否展示:,默认false
* title: '标题', --> 标题
* contentList: [{
* key: '用户名',
* value: '小赵'
* }]
* }
*/
props: {
option: {
type: Object,
required: true
}
},
data() {
return {
}
},
created() {},
methods: {
}
}
</script>
<style lang="scss" scoped>
.info-pad-container {
background: #fff;
margin: 20px;
padding: 20px;
.title {
font-weight: bold;
margin: 5px 0;
padding: 5px;
}
.item {
// width: 100%;
margin: 5px 0;
display: flex;
justify-content: flex-start;
align-items: top;
.key {
padding: 5px;
line-height: 20px;
}
.dot {
line-height: 30px;
}
.value {
padding: 5px;
line-height: 20px;
flex: 1;
word-break: break-all;
}
}
}
</style>
......@@ -9,7 +9,7 @@ const assistList = r => require.ensure([], () => r(require('../views/IM/diagnosi
const assistListTemp = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/assist-list-temp.vue')), 'assistListTemp')
const diagnosisEditor = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-editor.vue')), 'diagnosisEditor')
const diagnosisListLod = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-list-old.vue')), 'diagnosisListLod')
const refundDetail = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/refund-detail.vue')), 'refundDetail')
export default [{
path: '/',
component: App,
......@@ -44,6 +44,9 @@ export default [{
}, {
path: '/diagnosis-list-old',
component: diagnosisListLod
}, {
path: '/refund-detail',
component: refundDetail
}
]
}]
......@@ -63,7 +63,7 @@
<el-input v-model="formData.crrsName" placeholder="请输入招募人" disabled class="set-width"></el-input>
</el-form-item>
<br/>
<h1>预约信息</h1>
<el-form-item label="当前状态">
<el-select v-model="formData.status" placeholder="请选择状态" disabled class="set-width">
......@@ -73,6 +73,74 @@
<el-form-item label="运营人员">
<el-input v-model="formData.operateUserName" placeholder="请输入患者姓名" disabled class="set-width"></el-input>
</el-form-item>
<!-- 新增 -->
<el-form-item label="分诊人员" v-if="formData.triageOperatorName">
<el-input v-model="formData.triageOperatorName" placeholder="" disabled class="set-width"></el-input>
</el-form-item>
<el-form-item label="接诊人员" v-if="formData.receptionOperatorName">
<el-input v-model="formData.receptionOperatorName" placeholder="" disabled class="set-width"></el-input>
</el-form-item>
<el-form-item label="助诊意向时间" v-if="formData.assistantBeginTime || formData.assistantEndTime" prop="appointBeginTime" >
<el-date-picker
:disabled="true"
type="datetime"
placeholder="开始时间"
v-model="formData.assistantBeginTime"
style="width: 200px;"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
<span>-</span>
<el-date-picker
:disabled="true"
type="datetime"
placeholder="结束时间"
v-model="formData.assistantEndTime"
style="width: 200px;"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item>
<el-form-item label="备注(助诊)" v-if="formData.assistantRemark" >
<span>{{formData.assistantRemark}}</span>
</el-form-item>
<el-form-item label="分诊科室" v-if="formData.triageDepartment">
<!-- 由于不可编辑,只展示,故前端option获取接口省略,由前端写死 -->
<el-select v-model="formData.triageDepartmentId" placeholder="请选择状态" disabled class="set-width">
<el-option v-for="item of [{ value: formData.triageDepartmentId, label: formData.triageDepartment }]" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="备注(分诊)" v-if="formData.triageRemark" >
<span>{{ formData.triageRemark }}</span>
</el-form-item>
<el-form-item label="接诊意向时间" v-if="formData.receptionBeginTime || formData.receptionEndTime" prop="appointBeginTime" >
<el-date-picker
:disabled="true"
type="datetime"
placeholder="开始时间"
v-model="formData.receptionBeginTime"
style="width: 200px;"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
<span>-</span>
<el-date-picker
:disabled="true"
type="datetime"
placeholder="结束时间"
v-model="formData.receptionEndTime"
style="width: 200px;"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item>
<!-- 新增 -->
<el-form-item label="预约时间" prop="appointBeginTime" >
<el-date-picker
:disabled="true"
......@@ -101,7 +169,7 @@
</el-date-picker>
</el-form-item>
<br/>
<h1>患者信息</h1>
<el-form-item label="患者姓名" prop="patientName" >
<el-input v-model="formData.patientName" placeholder="请输入患者姓名" class="set-width" :disabled="noable || editorType== 2" minlength='2' maxlength="20"></el-input>
......@@ -141,7 +209,7 @@
<el-input v-model="formData.patientMobilePhone" placeholder="请输入手机号" class="set-width" :disabled="noable || editorType== 2" maxlength="11"></el-input>
</el-form-item>
<br/>
<h1>助诊信息</h1>
<el-form-item label="助诊医生" prop="userName">
<el-input v-model="formData.userName" placeholder="请选择助诊医生" class="set-width" disabled></el-input>
......@@ -175,8 +243,11 @@
<el-option v-for="item of relationList" :key="item.value" :label="item.label" :value="item.value" ></el-option>
</el-select>
</el-form-item>
<el-form-item label="招募人" v-if="true" prop="userName">
{{'张兰'}}
</el-form-item>
<br/>
<h1>接诊信息</h1>
<el-form-item label="接诊医生" prop="doctorName">
<!-- <el-input v-model="formData.doctorName" placeholder="请选择接诊医生" class="set-width" disabled></el-input>-->
......@@ -210,10 +281,37 @@
<el-option v-for="item of doctorSourceList" :key="item.value" :label="item.label" :value="item.value" ></el-option>
</el-select>
</el-form-item>
<el-form-item label="医生服务费" prop="serviceFee">
<!-- <el-form-item label="医生服务费" prop="serviceFee">
<el-input v-model="formData.serviceFee" placeholder="请输入医生服务费" class="set-width" :disabled="editorType== 2"></el-input> (单位元)
</el-form-item> -->
<!-- 新增 -->
<el-form-item label="站外医生姓名" v-if="formData.outsideDoctor" prop="outsideDoctor">
<el-input v-model="formData.outsideDoctor" placeholder="请输入医生服务费" class="set-width" :disabled="true"></el-input>
</el-form-item>
<!-- -->
<br/>
<h1 v-if="true && true">结算信息</h1>
<el-form-item label="接诊服务费" v-if="formData.receptionServiceFeeStr" prop="receptionServiceFeeStr">
{{formData.receptionServiceFeeStr}}
</el-form-item>
<el-form-item label="接诊付款方式" v-if="formData.receptionPayType" prop="receptionPayType">
{{getReceptionPayType}}
</el-form-item>
<el-form-item label="接诊付款时间" v-if="formData.receptionSettleTime" prop="receptionSettleTime">
{{formData.receptionSettleTime}}
</el-form-item>
<el-form-item label="助诊服务费" v-if="formData.assistantServiceFeeStr" prop="assistantServiceFeeStr">
{{ formData.assistantServiceFeeStr }}
</el-form-item>
<el-form-item label="助诊付款方式" v-if="formData.assistantPayType" prop="assistantPayType">
{{getAssistantPayType}}
</el-form-item>
<el-form-item label="助诊付款时间" v-if="formData.assistantSettleTime" prop="assistantSettleTime">
{{formData.assistantSettleTime}}
</el-form-item>
<br/>
<h1>问诊信息</h1>
<el-form-item label="初/复诊" prop="diagnoseStage" >
<el-radio-group v-model="formData.diagnoseStage" :disabled="formData.status==4 || editorType== 2">
......@@ -242,13 +340,39 @@
<el-input type="textarea" v-model="formData.diagnoseAdvice" placeholder="请输入更新建议(更新后原建议将被删除)" :disabled="editorType== 2" maxlength="1000" show-word-limit></el-input>
</el-form-item>
<el-form-item label="系统录音/录像">
<el-form-item v-for="item in formData.vodList">
<el-form-item v-for="item in formData.vodList" :key="item.url">
<el-link :href="item.url" target="_blank">{{diagnoseLogId + '_' + item.name + '_' + formData.doctorName + '_' + formData.doctorDepartment + '.mp4'}}</el-link>
</el-form-item>
</el-form-item>
<el-form-item label="音频" >
<upload-music :isDisable="editorType== 2" :musicList="formData.illnessAudioUrls" ref="musicComponent"></upload-music>
</el-form-item>
<br/>
<!-- 新增 -->
<h1>备注信息</h1>
<el-form-item label="患者是否在场" prop="patInFlag" >
<el-radio-group v-model="formData.patInFlag" :disabled="editorType== 2">
<el-radio :label="1"></el-radio>
<el-radio :label="2"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否有价值" prop="valueFlag" >
<el-radio-group v-model="formData.valueFlag" :disabled="editorType== 2">
<el-radio :label="1"></el-radio>
<el-radio :label="2"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="" prop="worthlessReason" >
<el-input type="textarea" v-model="formData.worthlessReason" placeholder="请输入低价值说明" maxlength="1000" :disabled="editorType== 2" show-word-limit></el-input>
</el-form-item>
<el-form-item label="其他备注" prop="otherRemark" >
<el-input type="textarea" v-model="formData.otherRemark" placeholder="请输入其他备注信息" maxlength="1000" :disabled="editorType== 2" show-word-limit></el-input>
</el-form-item>
<!-- -->
<br/>
<h1>跟进信息</h1>
<el-form-item label="是否跟进" >
<el-radio-group v-model="formData.followFlag" :disabled="editorType== 2">
<el-radio :label="1"></el-radio>
......@@ -282,8 +406,48 @@
<el-form-item label="备注">
<el-input type="textarea" v-model="formData.remark" placeholder="请输入备注信息,如沟通协商记录等" maxlength="1000" :disabled="editorType== 2" show-word-limit></el-input>
</el-form-item>
</el-form>
<br/>
<!-- -->
<h1>操作日志</h1>
<el-table
:data="logData"
style="width: 100%">
<el-table-column
prop="time"
label="变更时间">
</el-table-column>
<el-table-column
prop="operator"
label="变更人"
width="180">
</el-table-column>
<el-table-column
prop="content"
label="变更后内容">
</el-table-column>
<el-table-column
prop="preContent"
label="变更前内容">
</el-table-column>
</el-table>
<br/>
<el-row :gutter="0" type="flex" justify="end" align="center">
<el-pagination
@size-change="handlelogSizeChange"
@current-change="handlelogCurrentChange"
:current-page="logCurrentPage"
:page-sizes="[100, 200, 300, 400]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="logTotalCount">
</el-pagination>
</el-row>
<!-- -->
</el-form>
<br/>
<el-row :gutter="60" type="flex" justify="center" align="center">
<el-button @click="cancle">{{editorType== 1 ? '取消' : '返回'}}</el-button>
<el-button type="primary" @click="save" v-if="editorType== 1" :disabled="btnDisable">保存</el-button>
......@@ -296,6 +460,10 @@ import uploadImg from '@/components/editor/upload-img'
import uploadMusic from '@/components/editor/upload-music'
import { TYPE_LIST, PAY_LIST, SOURCE_LIST, STATUS_LIST, CAR_LIST, SEX_LIST, RELATION_LIST, D_S_LIST, FOLLW_LIST } from '@/utils/constants'
import { getBirth } from '@/utils/index'
const PAY_TYPE = {
1: '自动付款',
2: '手动付款'
}
export default {
components: {
uploadImg,
......@@ -428,6 +596,12 @@ export default {
diagnoseAdvice: [
{ required: true, message: '请输入诊断建议', trigger: 'change' }
],
worthlessReason: [{
max: 1000, message: '最大长度 1000 个字符', trigger: 'blur'
}],
otherRemark: [{
max: 1000, message: '最大长度 1000 个字符', trigger: 'blur'
}]
},
endDateOpt: {
disabledData: (time) => {
......@@ -444,7 +618,45 @@ export default {
time.getTime() < new Date(this.formData.appointBeginTime).getTime()
);
}
}
},
logData: [{
time: '2016-05-02',
operator: '赵丽颖',
content: '问诊状态由已完成变成已结算',
preContent: '助诊医生时间不匹配'
}, {
time: '2016-05-02',
operator: '赵丽颖',
content: '问诊状态由已完成变成已结算',
preContent: '助诊医生时间不匹配'
}, {
time: '2016-05-02',
operator: '赵丽颖',
content: '问诊状态由已完成变成已结算',
preContent: '助诊医生时间不匹配'
}, {
time: '2016-05-02',
operator: '赵丽颖',
content: '问诊状态由已完成变成已结算',
preContent: '助诊医生时间不匹配'
}, {
time: '2016-05-02',
operator: '赵丽颖',
content: '问诊状态由已完成变成已结算',
preContent: '助诊医生时间不匹配'
}, {
time: '2016-05-02',
operator: '赵丽颖',
content: '问诊状态由已完成变成已结算',
preContent: '助诊医生时间不匹配'
}, {
time: '2016-05-02',
operator: '赵丽颖',
content: '问诊状态由已完成变成已结算',
preContent: '助诊医生时间不匹配'
}],
logCurrentPage: 1,
logTotalCount: 0
}
},
created() {
......@@ -454,6 +666,14 @@ export default {
},
mounted() {
},
computed: {
getReceptionPayType () {
return PAY_TYPE[this.formData.receptionPayType]
},
getAssistantPayType () {
return PAY_TYPE[this.formData.assistantPayType]
}
},
methods: {
search() {
this.loading = true
......@@ -461,6 +681,11 @@ export default {
this.GET(url).then(res => {
this.loading = false
if (res.code == '000000') {
// for (let key in res.data) {
// if (!res.data[key]) {
// res.data[key] = '2019-01-02 12:00:00'
// }
// }
this.formData = res.data
this.formData.price = this.priceFilter(this.formData.price)
this.formData.serviceFee = this.priceFilter(this.formData.serviceFee)
......@@ -595,27 +820,27 @@ export default {
this.btnDisable = false
this.loading = false
});
return
if (valid) {
let url = `/diagnose/admin/diagnose/update`
let 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()] : []
this.POST(url, params).then(res => {
this.loading = false
if (res.code == "000000") {
this.$message.success('保存成功');
// this.$router.back()
} else {
this.$message({
message: res.message,
type: "error"
})
}
});
} else {
this.$message.info('请将信息填写完整')
}
// return
// if (valid) {
// let url = `/diagnose/admin/diagnose/update`
// let 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()] : []
// this.POST(url, params).then(res => {
// this.loading = false
// if (res.code == "000000") {
// this.$message.success('保存成功');
// // this.$router.back()
// } else {
// this.$message({
// message: res.message,
// type: "error"
// })
// }
// });
// } else {
// this.$message.info('请将信息填写完整')
// }
});
},
// 格式话音频/视频数组
......@@ -629,7 +854,21 @@ export default {
)
});
return newArr
},
// log
handlelogSizeChange (val) {
console.log('每页val条')
},
handlelogCurrentChange (val) {
console.log('当前页为val')
}
// @size-change="handlelogSizeChange"
// @current-change="handlelogCurrentChange"
// :current-page="logCurrentPage"
// :page-sizes="[100, 200, 300, 400]"
// :page-size="100"
// layout="total, sizes, prev, pager, next, jumper"
// :total="logTotalCount">
}
}
</script>
......
<template>
<div class="refund-container">
<refund-detail :option="applyOption" />
<refund-detail :option="payOption" />
<refund-detail :option="checkOption" />
<refund-detail :option="detailOption" />
</div>
</template>
<script>
import refundDetail from '@/components/common/info-pad';
let vm = null;
export default {
components: {
refundDetail
},
data(){
return {
applyOption: {
title: '退款申请信息',
isShowDot: true,
contentList: [{
key: '退款编号',
value: '12345667788899900-0098765'
}, {
key: '订单编号',
value: '12345667788899900-0098765'
}, {
key: '申请时间',
value: '2020-09-09 12:00:00'
}, {
key: '商品名称',
value: '语音问诊'
}, {
key: '退款金额',
value: '语音问诊'
}, {
key: '申请人',
value: '语音问诊'
}, {
key: '退款原因',
value: '语音问诊xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
}, {
key: '退款说明',
value: '语音问诊'
}]
},
payOption: {
title: '支付信息',
isShowDot: true,
contentList: [{
key: '支付方式',
value: '微信支付'
}, {
key: '订单金额',
value: '¥9.90'
}, {
key: '支付时间',
value: '2021-01-01 12:00:00'
}]
},
checkOption: {
title: '退款审核',
isShowDot: true,
contentList: [{
key: '退款状态',
value: '已完成'
}, {
key: '备注信息',
value: 'xxxxxxx'
}, {
key: '退款时间',
value: '2020-01-01 12:00:00'
}]
},
detailOption: {
title: '退款详情',
isShowDot: true,
contentList: [{
key: '支付方式',
value: '微信支付'
}, {
key: '退款金额',
value: '¥9.90'
}, {
key: '完成时间',
value: '2020-01-01 10:00:00'
}]
}
}
},
mounted() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.refund-container {
}
</style>
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册