提交 2f80cb13 编写于 作者: vino's avatar vino

修改服务列表和增加助诊医生分佣设置列表

上级 cb66ed17
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
<el-table-column prop="orderNo" label="订单ID" min-width="170" align="center"></el-table-column> <el-table-column prop="orderNo" label="订单ID" min-width="170" align="center"></el-table-column>
<el-table-column prop="diagnoseTypeStr" label="预约类型" min-width="150" align="center"></el-table-column> <el-table-column prop="diagnoseTypeStr" label="预约类型" min-width="150" align="center"></el-table-column>
<el-table-column prop="statusStr" label="状态" min-width="150" align="center"></el-table-column> <el-table-column prop="statusStr" label="状态" min-width="150" align="center"></el-table-column>
<el-table-column prop="crrsName" label="招募人" min-width="170" align="center"></el-table-column>
<el-table-column prop="operateUserName" label="运营人员" min-width="150" align="center"></el-table-column> <el-table-column prop="operateUserName" label="运营人员" min-width="150" align="center"></el-table-column>
<el-table-column prop="patientName" label="患者姓名" min-width="150" align="center"></el-table-column> <el-table-column prop="patientName" label="患者姓名" min-width="150" align="center"></el-table-column>
<el-table-column prop="idCard" label="证件号" min-width="170" align="center"></el-table-column> <el-table-column prop="idCard" label="证件号" min-width="170" align="center"></el-table-column>
...@@ -53,6 +54,7 @@ ...@@ -53,6 +54,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="payTypeStr" label="支付方式" min-width="150" align="center"></el-table-column> <el-table-column prop="payTypeStr" label="支付方式" min-width="150" align="center"></el-table-column>
<el-table-column prop="sexStr" label="性别" min-width="150" align="center"></el-table-column> <el-table-column prop="sexStr" label="性别" min-width="150" align="center"></el-table-column>
<el-table-column prop="maritalStatusStr" label="婚否" min-width="150" align="center"></el-table-column>
<el-table-column prop="age" label="年龄" min-width="150" align="center"></el-table-column> <el-table-column prop="age" label="年龄" min-width="150" align="center"></el-table-column>
<el-table-column prop="idCardTypeStr" label="证件类型" min-width="170" align="center"></el-table-column> <el-table-column prop="idCardTypeStr" label="证件类型" min-width="170" align="center"></el-table-column>
<el-table-column prop="userTitle" label="助诊医生职称" min-width="170" align="center"></el-table-column> <el-table-column prop="userTitle" label="助诊医生职称" min-width="170" align="center"></el-table-column>
...@@ -68,7 +70,6 @@ ...@@ -68,7 +70,6 @@
<span>{{scope.row.serviceFee | priceFilter}}</span> <span>{{scope.row.serviceFee | priceFilter}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="crrsName" label="招募人" min-width="170" align="center"></el-table-column>
<el-table-column prop="remark" label="备注" min-width="200" align="center" show-overflow-tooltip></el-table-column> <el-table-column prop="remark" label="备注" min-width="200" align="center" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" fixed="right" align="center" min-width="200"> <el-table-column label="操作" fixed="right" align="center" min-width="200">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -175,4 +176,4 @@ export default { ...@@ -175,4 +176,4 @@ export default {
</script> </script>
<style> <style>
</style> </style>
\ No newline at end of file
...@@ -5,6 +5,7 @@ const diagnosisList = r => require.ensure([], () => r(require('../views/IM/diagn ...@@ -5,6 +5,7 @@ const diagnosisList = r => require.ensure([], () => r(require('../views/IM/diagn
const diagnosisIm = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-im.vue')), 'diagnosisIm') const diagnosisIm = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-im.vue')), 'diagnosisIm')
const diagnosisLive = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-live.vue')), 'diagnosisLive') const diagnosisLive = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-live.vue')), 'diagnosisLive')
const serviceList = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/service-list.vue')), 'serviceList') const serviceList = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/service-list.vue')), 'serviceList')
const assistList = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/assist-list.vue')), 'assistList')
const diagnosisEditor = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-editor.vue')), 'diagnosisEditor') const diagnosisEditor = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-editor.vue')), 'diagnosisEditor')
const diagnosisListLod = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-list-old.vue')), 'diagnosisListLod') const diagnosisListLod = r => require.ensure([], () => r(require('../views/IM/diagnosis-admin/diagnosis-list-old.vue')), 'diagnosisListLod')
...@@ -27,6 +28,9 @@ export default [{ ...@@ -27,6 +28,9 @@ export default [{
}, { }, {
path: '/service-List', path: '/service-List',
component: serviceList component: serviceList
}, {
path: '/assist-list',
component: assistList
}, { }, {
path: '/diagnosis-editor', path: '/diagnosis-editor',
component: diagnosisEditor component: diagnosisEditor
......
...@@ -23,6 +23,17 @@ const vueFilter = { ...@@ -23,6 +23,17 @@ const vueFilter = {
return value; return value;
} }
}, },
priceNum (value) {
if(value != "" && value != null && value != "null"){
return (value/100).toFixed(2);
}
else if(value == 0){
return (value/100).toFixed(2);
}
else {
return value;
}
},
diagnosisTypeFilter: (value) => { diagnosisTypeFilter: (value) => {
if(value == 1) { if(value == 1) {
return '音频' return '音频'
......
<template>
<div class="diagnosis-list-content">
<div class="component-content screenSet" id="screenSet">
<div class="title">助诊医生列表</div>
<el-form ref="form" :inline="true" :model="searchParam" label-suffix=":" label-width="120px" label-position="right" style="width:100%;">
<el-row :gutter="30" type="flex" style="margin-bottom:0;">
<el-col :span="12">
<el-form-item label="助诊医生">
<el-input v-model="searchParam.searchKey" size="middle" placeholder="请输入医生姓名或联系电话" style="width: 120%;"></el-input>
</el-form-item>
</el-col>
<el-col :span="10" style="margin-left: 45px;">
<el-form-item label="所在机构">
<el-input v-model="searchParam.hospitalName" size="middle" placeholder="请输入所在机构名称" style="width: 120%;"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30" type="flex" style="margin-bottom:0;">
<el-col :span="15">
<el-form-item label="创建时间">
<el-date-picker
v-model="rangeTime"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 100%;"
:picker-options="pickerOptions1">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="分佣方式" style="margin-left: 10px;">
<el-select
v-model="searchParam.commissionType"
id="statusSelector"
placeholder="请选择分佣方式"
clearable
style="width:110%;height: 32px;line-height: 32px;"
>
<el-option
v-for="item in commissionTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3" style="text-align:center;padding-right:55px;padding-left: 0px;">
<el-button type="primary" size="small" @click="search()">搜索</el-button>
</el-col>
</el-row>
</el-form>
<el-row :gutter="30" type="flex" style="margin-bottom:0;float: right;">
<el-col :span="5" style="text-align:right;margin-bottom: 10px;margin-right: 40px;">
<el-button type="primary" size="small" @click="refresh()">刷新页面</el-button>
</el-col>
<el-col :span="5" style="text-align:right;">
<el-button type="primary" size="small" @click="add()">添加助诊医生</el-button>
</el-col>
</el-row>
<!-- 表格 -->
<el-table
class="search-table"
:data="tableData"
style="width: 100%"
v-loading="loading"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="50"></el-table-column>
<el-table-column prop="userId" label="ID" min-width="100" align="left"></el-table-column>
<el-table-column prop="userName" label="助诊医生" min-width="100" align="left"></el-table-column>
<el-table-column prop="mobile" label="手机号" min-width="100" align="left"></el-table-column>
<el-table-column prop="address" label="地区" min-width="100" align="left"></el-table-column>
<el-table-column prop="hospitalName" label="医院" min-width="100" align="left"></el-table-column>
<el-table-column prop="department" label="科室" min-width="100" align="left"></el-table-column>
<el-table-column prop="title" label="职称" min-width="100" align="left"></el-table-column>
<el-table-column prop="audioCommissionTypeStr" label="语音分佣规则" min-width="120" align="left"></el-table-column>
<el-table-column prop="audioPrice" label="语音分佣" min-width="100" align="left">
<template slot-scope="scope">
<span>{{scope.row.audioPrice | priceNum}}</span>
</template>
</el-table-column>
<el-table-column prop="videoCommissionTypeStr" label="视频分佣规则" min-width="120" align="left"></el-table-column>
<el-table-column prop="videoPrice" label="视频分佣" min-width="100" align="left">
<template slot-scope="scope">
<span>{{scope.row.videoPrice | priceNum}}</span>
</template>
</el-table-column>
<el-table-column prop="imgCommissionTypeStr" label="图文分佣规则" min-width="120" align="left"></el-table-column>
<el-table-column prop="imgPrice" label="图文分佣" min-width="100" align="left">
<template slot-scope="scope">
<span>{{scope.row.imgPrice | priceNum}}</span>
</template>
</el-table-column>
<!-- <el-table-column prop="price" label="价格(元)" min-width="60" align="left">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{scope.row.price | rounding}}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column prop="status" label="状态" min-width="80" align="left">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{scope.row.status | statusFilter}}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column prop="createdTime" label="注册时间" min-width="160" align="left">
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" min-width="150">
<template slot-scope="scope">
<div>
<el-button type="primary" size="small" @click="setPrice(scope.row, false)" style="margin-top: 10px;">设置分佣</el-button>
</div>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<div class="pagination">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchParam.pageNo"
:page-sizes="[10, 15, 30, 50, 100, 200, 500, 700, 1000, 1500, 2000]"
:page-size="searchParam.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows">
</el-pagination>
</div>
<el-dialog
:title="title"
:visible.sync="setAddVisible"
width="60%">
<el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">
<el-form ref="setPriceForm"
:rules="addRules"
:model="model"
label-width="250px"
label-suffix=":"
label-position="right"
size="mini"
style="width: 100%;">
<el-col :span="15">
<el-form-item label="助诊医生" class="required-label" prop="userName">
<el-select v-model="model.userName"
filterable
remote
placeholder="请输入专家姓名或医院名称,多个关键字用空格隔开,至少输入两个字符"
clearable
style="width: 170%;"
:remote-method="remoteMethod"
:disabled="isEdit"
@change="nameChange"
@visible-change="noSelectHand">
<el-option
v-for="item in nameList"
:key="item.id"
:label="item.name"
:value="item.id">
<span>{{item.value}}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="15" style="margin-left: 105px;">-->
<!-- 实际收入(接诊后实际到账金额): ¥{{tempPrice | rounding}}-->
<!-- </el-col>-->
<el-col :span="15">
<el-form-item label="助诊医生职称" class="required-label">
<el-input v-model="model.title" style="width: 170%;" disabled size="small" ></el-input>
</el-form-item>
</el-col>
<el-col :span="15">
<el-form-item label="助诊医生所在机构" class="required-label">
<el-input v-model="model.hospitalName" style="width: 170%;" disabled size="small" ></el-input>
</el-form-item>
</el-col>
<el-col :span="15">
<el-form-item label="助诊医生所在科室" class="required-label">
<el-input v-model="model.department" style="width: 170%;" disabled size="small" ></el-input>
</el-form-item>
</el-col>
<el-col :span="15">
<el-form-item label="助诊电话" class="required-label">
<el-input v-model="model.mobile" style="width: 170%;" disabled size="small" ></el-input>
</el-form-item>
</el-col>
<el-col :span="15">
<el-form-item label="语音问诊分佣" prop="audioCommissionType" class="required-label">
<el-radio-group v-model="model.audioCommissionType" size="small" style="line-height: 30px;">
<el-radio :label="1" style="float: left;margin-top: 10px;line-height: 20px;">按比例分佣</el-radio>
<span style="float: right;width: 100px;"><el-input-number v-model="model.audioPrice1" size="small" :precision="2" :min="0" :max="9999"></el-input-number></span>
<el-radio :label="2" style="float: left;margin-top: 10px;line-height: 20px;">固定分佣金额</el-radio>
<span style="float: right;width: 100px;"><el-input-number v-model="model.audioPrice2" size="small" :precision="2" :min="0" :max="9999"></el-input-number></span>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="15">
<el-form-item label="视频问诊分佣" prop="videoCommissionType" class="required-label">
<el-radio-group v-model="model.videoCommissionType" size="small" style="line-height: 30px;">
<el-radio :label="1" style="float: left;margin-top: 10px;line-height: 20px;">按比例分佣</el-radio>
<span style="float: right;width: 100px;"><el-input-number v-model="model.videoPrice1" size="small" :precision="2" :min="0" :max="9999"></el-input-number></span>
<el-radio :label="2" style="float: left;margin-top: 10px;line-height: 20px;">固定分佣金额</el-radio>
<span style="float: right;width: 100px;"><el-input-number v-model="model.videoPrice2" size="small" :precision="2" :min="0" :max="9999"></el-input-number></span>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="15">
<el-form-item label="图文问诊分佣" prop="imgCommissionType" class="required-label">
<el-radio-group v-model="model.imgCommissionType" size="small" style="line-height: 30px;">
<el-radio :label="1" style="float: left;margin-top: 10px;line-height: 20px;">按比例分佣</el-radio>
<span style="float: right;width: 100px;"><el-input-number v-model="model.imgPrice1" size="small" :precision="2" :min="0" :max="9999"></el-input-number></span>
<el-radio :label="2" style="float: left;margin-top: 10px;line-height: 20px;">固定分佣金额</el-radio>
<span style="float: right;width: 100px;"><el-input-number v-model="model.imgPrice2" size="small" :precision="2" :min="0" :max="9999"></el-input-number></span>
</el-radio-group>
</el-form-item>
</el-col>
</el-form>
</el-row>
<span slot="footer" class="dialog-footer" style="text-align: center;">
<!-- <el-button @click="setPriceVisible = false">取 消</el-button>-->
<el-button type="primary" @click="submit">提交</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
<script>
let vm = null;
export default {
data(){
return {
endFlag: false,
beginFlag: false,
loading: false,
setPriceVisible: false,
rangeTime: "",
searchParam: {
searchKey: '',
hospitalName: '',
commissionType: 0,
startTime: "",
endTime: "",
pageSize: 10,
pageNo: 1
},
batchUpdatePriceFlag: false,
setPriceForm:{
doctorId: '',
serviceType: '',
price: ''
},
model:{
name: '',
userId: '',
userName: '',
mobile:'',
address:'',
hospitalName:'',
title:'',
audioCommissionType: '',
audioPrice: '',
audioPrice1: '',
audioPrice2: '',
videoCommissionType: '',
videoPrice: '',
videoPrice1: '',
videoPrice2: '',
imgCommissionType: '',
imgPrice: '',
imgPrice1: '',
imgPrice2: '',
},
timeSelect: [],
diagnosisSelect: [],
serviceTypeList: [],
tableData: [],
totalRows: 0,
setPriceRules: {
// price: [
// { required: true, message: '请输入价格', trigger: 'blur'},
// { pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, message: '请输入正确额格式,可保留两位小数' }
// ],
},
liveBack: false,
timeClickFlag: true,
multipleSelection: [],
tempPrice: 0,
statusList: [
{
value: 0,
label: "全部"
},
{
value: 1,
label: "下架"
},
{
value: 2,
label: "上架"
}],
profit: 0,
selectedList:[],
selectedPriceList:[],
setAddVisible: false,
title: '添加助诊医生',
isEdit: false,
nameList: [],
commissionTypeList: [
{
value: 0,
label: "全部"
},
{
value: 1,
label: "按比例分佣"
},
{
value: 2,
label: "固定分佣金额"
}],
pickerOptions0: {
disabledDate: time => {
if (
this.searchParam.endTimestamp != "" &&
this.searchParam.endTimestamp != null
) {
return (
time.getTime() > new Date(this.searchParam.endTimestamp).getTime()
);
}
}
},
pickerOptions1: {
disabledDate: time => {
return (
time.getTime() > new Date().getTime()
); //减去一天的时间代表可以选择同一天;
}
},
addRules: {
userName: [
{required: true, message: "请输入助诊医生", trigger: 'blur'}
],
audioCommissionType: [
{required: true, message: "请设置语音问诊分佣", trigger: 'blur'}
],
videoCommissionType: [
{required: true, message: "请设置视频问诊分佣", trigger: 'blur'}
],
imgCommissionType: [
{required: true, message: "请设置图文问诊分佣", trigger: 'blur'}
]
}
}
},
mounted() {
vm = this;
this.getServiceTypeList();
// this.getDiagnoseList()
this.search()
},
methods: {
// 服务名称
getServiceTypeList() {
let url = `/diagnose/doctorService/serviceType`
this.GET(url).then(res => {
if (res.code == "000000") {
this.serviceTypeList = res.data
}
})
},
search() {
if(this.rangeTime){
this.searchParam.startTime = this.rangeTime[0];
this.searchParam.endTime = this.rangeTime[1];
}
else {
this.searchParam.startTime = "";
this.searchParam.endTime = "";
}
this.loading = true
let url = `/diagnose/commission/downDoctor/pageSearch`
let params = this.searchParam
this.POST(url, params).then(res => {
this.loading = false
if (res.code == "000000") {
this.tableData = res.data.contentList;
this.totalRows = res.data.total;
}
});
// this.tableData = [
// {'orderNo': 100, 'serviceName': '语音问诊',
// 'doctorName': '李时珍', 'userMobile': '18888888888',
// 'price': '100', 'statusStr': '上架', 'appointBeginTime': '2015-10-10',
// 'status': '2'}
// ];
},
submit() {
if(this.model.audioCommissionType == 1 && this.model.audioPrice1 == ""){
this.$message({
message: '请输入语音问诊分佣中的按比例分佣',
type: "warning"
});
return;
}
if(this.model.audioCommissionType == 2 && this.model.audioPrice2 == ""){
this.$message({
message: '请输入语音问诊分佣中的固定分佣金额',
type: "warning"
});
return;
}
if(this.model.videoCommissionType == 2 && this.model.videoPrice1 == ""){
this.$message({
message: '请输入视频问诊分佣中的固定分佣金额',
type: "warning"
});
return;
}
if(this.model.videoCommissionType == 2 && this.model.videoPrice2 == ""){
this.$message({
message: '请输入视频问诊分佣中的固定分佣金额',
type: "warning"
});
return;
}
if(this.model.imgCommissionType == 2 && this.model.imgPrice1 == ""){
this.$message({
message: '请输入图文问诊分佣中的固定分佣金额',
type: "warning"
});
return;
}
if(this.model.imgCommissionType == 2 && this.model.imgPrice2 == ""){
this.$message({
message: '请输入图文问诊分佣中的固定分佣金额',
type: "warning"
});
return;
}
let timeoutId = null
timeoutId && clearTimeout(timeoutId)
timeoutId = setTimeout(() => {
this.clickHandle()
}, 500)
},
// 防止按钮多次点击
clickHandle() {
this.$refs.setPriceForm.validate((valid) => {
if(valid) {
this.loading = true
this.POST('/diagnose/doctorService/updatePrice', this.setPriceForm).then(res => {
this.loading = false
// closeLoading(this);
if (res.code == "000000") {
this.$message({
message: '设置价格成功',
type: "success"
});
this.setPriceVisible = false
this.search()
}else {
this.$message({
message: res.message,
type: "error"
})
}
});
}
})
},
handleSizeChange(value) {
this.searchParam.pageSize = value
this.search()
},
handleCurrentChange(value) {
this.searchParam.pageNo = value
this.search()
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
// 刷新页面
refresh(){
this.searchParam = {
searchKey: '',
serviceTypeId: 0,
status: 0,
startTime: "",
endTime: "",
pageSize: 15,
pageNo: 1
};
this.rangeTime = "";
this.search();
},
setSelectedList(){
if(this.multipleSelection.length > 0){
this.selectedList = [];
for(let i = 0; i < this.multipleSelection.length; i++){
this.selectedList.push({doctorId: this.multipleSelection[i].doctorId, serviceType: this.multipleSelection[i].serviceType});
}
}
},
setSelectedPriceList(){
if(this.multipleSelection.length > 0){
this.selectedPriceList = [];
for(let i = 0; i < this.multipleSelection.length; i++){
if(this.multipleSelection[i].price != 0 && (this.multipleSelection[i].price == "" || this.multipleSelection[i].price == null)){
this.$message({
message: '请先设置"问诊价格"',
type: "warning"
});
return false;
}
this.selectedPriceList.push({doctorId: this.multipleSelection[i].doctorId, serviceType: this.multipleSelection[i].serviceType, price: this.multipleSelection[i].price});
}
return true;
}
},
setPrice(row, batchUpdatePriceFlag){
this.batchUpdatePriceFlag = batchUpdatePriceFlag;
this. setPriceForm.doctorId = row.doctorId;
this.setPriceForm.serviceType = row.serviceType;
this.setPriceForm.price = row.price;
// this.setPriceVisible = true
this.setAddVisible = true;
this.isEdit = true;
this.title = "设置分佣";
vm.model.id = row.id;
vm.model.userId = row.userId;
vm.model.userName = row.userName;
vm.model.mobile = row.mobile;
vm.model.provinceName = row.provinceName;
vm.model.cityName = row.cityName;
vm.model.countyName = row.countyName;
vm.model.townName = row.townName;
vm.model.hospitalName = row.hospitalName;
vm.model.department = row.department;
vm.model.title = row.title;
vm.model.audioCommissionType = row.audioCommissionType;
if(row.audioCommissionType == 1){
vm.model.audioPrice1 = this.priceNum(row.audioPrice);
}
else if(row.audioCommissionType == 2){
vm.model.audioPrice2 = row.audioPrice;
}
vm.model.videoCommissionType = row.videoCommissionType;
if(row.videoCommissionType == 1){
vm.model.videoPrice1 = row.videoPrice;
}
else if(row.videoCommissionType == 2){
vm.model.videoPrice2 = row.videoPrice;
}
vm.model.imgCommissionType = row.imgCommissionType;
if(row.audioCommissionType == 1){
vm.model.imgPrice1 = row.imgPrice;
}
else if(row.audioCommissionType == 2){
vm.model.imgPrice2 = row.imgPrice;
}
if(this.$refs.setPriceForm) {
this.$refs.setPriceForm.resetFields()
}
// this.getProfit(row);
},
getProfit(row){
this.POST(`/diagnose/doctorService/profit`, {doctorId: row.doctorId, serviceType: row.serviceType}).then(res => {
if (res.code == "000000") {
vm.profit = res.data;
if(vm.setPriceForm.price != 0 && (vm.setPriceForm.price == "" || vm.setPriceForm.price == null)){
this.tempPrice = "";
}
else {
this.tempPrice = this.setPriceForm.price * this.profit;
}
}else {
this.$message({
message: res.message,
type: "error"
})
}
});
},
changePrice(e){
if(this.setPriceForm.price != 0 && (this.setPriceForm.price == "" || this.setPriceForm.price == undefined)){
this.tempPrice = "";
}
else {
this.tempPrice = this.setPriceForm.price * this.profit;
}
},
add(){
this.setAddVisible = true;
this.isEdit = false;
this.title = "添加助诊医生";
},
//搜索
remoteMethod(val) {
if (val.length >= 2) {
// console.log('搜索',val)
this.GET(`/doctor/doctorExpert/doctorInfoByNameLike?name=${val}`)
.then(function (res) {
if (res.code == '000000') {
// let data = JSON.parse(JSON.stringify(res.data.data));//通过这个实现深拷贝
let list = res.data;
vm.expertData = list;
let newList = [];
list.map((item, index) => {
newList[index] = {
value: `${item.name} ${item.mobilePhone} ${item.hospital} ${item.title}`,
id: item.doctorId,
name: item.name,
}
})
// console.log('新数组',newList)
vm.nameList = newList;
}
}).catch(function (error) {
errorResponseCheck(error, vm);
});
}else {
vm.expertData = [];
vm.nameList = [];
}
},
nameChange(val) {
// console.log('选中的值',val)
if (val) {
for(let i=0; i < vm.expertData.length; i++){
if (val == vm.expertData[i].doctorId) {
let item = vm.expertData[i];
vm.model.userName = item.name;
vm.model.mobile = item.mobilePhone;
vm.model.hospitalName = item.hospital;
vm.model.department = item.department;
vm.model.title = item.title;
vm.model.userId = item.doctorId;
}
}
}else {
// vm.model.name = '';
// vm.model.mobilePhone = '';
// vm.model.provinceName = '';
// vm.model.cityName = '';
// vm.model.countyName = '';
// vm.model.townName = '';
// vm.model.hospital = '';
// vm.model.department = '';
// vm.model.title = '';
// vm.expertData = [];
// vm.model.doctorId = '';
vm.model.userName = '';
vm.model.mobile = '';
vm.model.hospitalName = '';
vm.model.department = '';
vm.model.title = '';
vm.model.userId = '';
}
vm.nameList = [];
},
noSelectHand(val) {
if (!val && !vm.model.name) {
vm.nameList = [];
}
},
priceNum (value) {
if(value != "" && value != null && value != "null"){
return (value/100).toFixed(2);
}
else if(value == 0){
return (value/100).toFixed(2);
}
else {
return value;
}
},
}
}
</script>
<style lang="scss" scoped>
.diagnosis-list-content {
.component-content {
padding: 10px;
background: #fff;
overflow: hidden !important;
.title {
margin-bottom: 30px;
}
}
}
.required-label {
.el-form-item__label::before{
content: '*';
color: #F56C6C;
margin-right: 4px;
}
}
.el-dialog__footer {
padding: 10px 20px 20px;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
</style>
...@@ -131,6 +131,12 @@ ...@@ -131,6 +131,12 @@
<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="婚否" prop="maritalStatus" >
<el-radio-group v-model="formData.maritalStatus" :disabled="formData.status==4 || 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="patientMobilePhone" > <el-form-item label="患者电话" prop="patientMobilePhone" >
<el-input v-model="formData.patientMobilePhone" placeholder="请输入手机号" class="set-width" :disabled="noable || editorType== 2" maxlength="11"></el-input> <el-input v-model="formData.patientMobilePhone" placeholder="请输入手机号" class="set-width" :disabled="noable || editorType== 2" maxlength="11"></el-input>
</el-form-item> </el-form-item>
...@@ -466,7 +472,7 @@ export default { ...@@ -466,7 +472,7 @@ export default {
}, },
getDoctorList() { getDoctorList() {
this.loading = true this.loading = true
let url = `/diagnose//doctorService/doctorList?diagnoseType=${this.formData.diagnoseType}` let url = `/diagnose/doctorService/doctorList?diagnoseType=${this.formData.diagnoseType}`
this.GET(url).then(res => { this.GET(url).then(res => {
this.loading = false this.loading = false
if (res.code == '000000') { if (res.code == '000000') {
......
...@@ -3,13 +3,13 @@ ...@@ -3,13 +3,13 @@
<div class="component-content screenSet" id="screenSet"> <div class="component-content screenSet" id="screenSet">
<div class="title">服务列表</div> <div class="title">服务列表</div>
<el-form ref="form" :inline="true" :model="searchParam" label-suffix=":" label-width="120px" label-position="right" style="width:100%;"> <el-form ref="form" :inline="true" :model="searchParam" label-suffix=":" label-width="120px" label-position="right" style="width:100%;">
<el-row :gutter="30" type="flex" style="margin-bottom:0;"> <el-row :gutter="30" type="flex" style="margin-bottom:0;">
<el-col :span="12"> <el-col :span="13">
<el-form-item label="服务医生"> <el-form-item label="服务医生">
<el-input v-model="searchParam.searchKey" size="middle" placeholder="请输入医生姓名或联系电话" style="width: 120%;"></el-input> <el-input v-model="searchParam.searchKey" size="middle" placeholder="请输入医生姓名或联系电话" style="width: 120%;"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" style="margin-left: 65px;"> <el-col :span="10">
<el-form-item label="服务名称"> <el-form-item label="服务名称">
<el-select <el-select
v-model="searchParam.serviceTypeId" v-model="searchParam.serviceTypeId"
...@@ -29,25 +29,8 @@ ...@@ -29,25 +29,8 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30" type="flex" style="margin-bottom:0;"> <el-row :gutter="30" type="flex" style="margin-bottom:0;">
<el-col :span="15"> <el-col :span="13">
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<!-- <el-date-picker-->
<!-- v-model="searchParam.startTime"-->
<!-- size="small"-->
<!-- type="date"-->
<!-- placeholder="请选择开始时间"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- :picker-options="pickerOptions0"-->
<!-- ></el-date-picker> ~-->
<!-- <el-date-picker-->
<!-- v-model="searchParam.endTime"-->
<!-- size="small"-->
<!-- type="date"-->
<!-- placeholder="请选择结束时间"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- :picker-options="pickerOptions1"-->
<!-- default-time="23:59:59"-->
<!-- ></el-date-picker>-->
<el-date-picker <el-date-picker
v-model="rangeTime" v-model="rangeTime"
type="daterange" type="daterange"
...@@ -60,7 +43,7 @@ ...@@ -60,7 +43,7 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" style="padding-left: 0px;padding-right: 0px;"> <el-col :span="10">
<el-form-item label="状态"> <el-form-item label="状态">
<el-select <el-select
v-model="searchParam.status" v-model="searchParam.status"
...@@ -78,7 +61,27 @@ ...@@ -78,7 +61,27 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="3" style="text-align:right;padding-right:55px;"> </el-row>
<el-row :gutter="30" type="flex" style="margin-bottom:0;">
<el-col :span="8">
<el-form-item label="接诊分佣方式">
<el-select
v-model="searchParam.commissionType"
id="statusSelector"
placeholder="请选择服务状态"
clearable
style="height: 32px;line-height: 32px;"
>
<el-option
v-for="item in commissionTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="15" style="text-align:right;padding-right:55px;">
<el-button type="primary" size="small" @click="search()">搜索</el-button> <el-button type="primary" size="small" @click="search()">搜索</el-button>
</el-col> </el-col>
</el-row> </el-row>
...@@ -114,7 +117,9 @@ ...@@ -114,7 +117,9 @@
<span>{{scope.row.price | rounding}}</span> <span>{{scope.row.price | rounding}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="status" label="状态" min-width="80" align="left"> <el-table-column prop="commissionTypeStr" label="接诊分佣方式" min-width="120" align="left"></el-table-column>
<el-table-column prop="commissionFee" label="分佣金额(元)" min-width="120" align="left"></el-table-column>
<el-table-column prop="status" label="状态" min-width="80" align="left">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.status | statusFilter}}</span> <span>{{scope.row.status | statusFilter}}</span>
</template> </template>
...@@ -150,24 +155,32 @@ ...@@ -150,24 +155,32 @@
<el-dialog <el-dialog
title="设置价格" title="设置价格"
:visible.sync="setPriceVisible" :visible.sync="setPriceVisible"
width="40%"> width="55%">
<el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;"> <el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">
<el-form ref="setPriceForm" <el-form ref="setPriceForm"
:rules="setPriceRules" :rules="setPriceRules"
:model="setPriceForm" :model="setPriceForm"
label-width="150px" label-width="250px"
label-suffix=":" label-suffix=":"
label-position="right" label-position="right"
size="mini" size="mini"
style="width: 100%;"> style="width: 100%;">
<el-col :span="15"> <el-col :span="18">
<el-form-item label="价格" class="required-label"> <el-form-item label="问诊价格" class="required-label" prop="price">
<el-input-number v-model="setPriceForm.price" size="small" :precision="2" :min="0" :max="9999" placeholder="请输入价格" @change="changePrice($event)"></el-input-number> <el-input-number v-model="setPriceForm.price" size="small" :precision="2" :min="0" :max="9999" placeholder="请输入价格" @change="changePrice($event)"></el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="15" style="margin-left: 105px;"> <el-col :span="18">
实际收入(接诊后实际到账金额): ¥{{tempPrice | rounding}} <el-form-item label="接诊服务费结算方式(上级医生)" prop="commissionType">
<el-radio-group v-model="setPriceForm.commissionType" size="small" style="line-height: 30px;">
<el-radio :label="1" style="margin-top: 10px;line-height: 20px;">按比例分佣(%)</el-radio>
<span style="width: 100px;"><el-input-number v-model="setPriceForm.commissionPrice1" size="small" :precision="2" :min="0" :max="9999"></el-input-number></span>
<el-radio :label="2" style="margin-top: 10px;line-height: 20px;">固定分佣金额(元)</el-radio>
<span style="width: 100px;margin-left: 14px;"><el-input-number v-model="setPriceForm.commissionPrice2" size="small" :precision="2" :min="0" :max="9999"></el-input-number></span>
</el-radio-group>
</el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
...@@ -199,6 +212,10 @@ export default { ...@@ -199,6 +212,10 @@ export default {
}, },
batchUpdatePriceFlag: false, batchUpdatePriceFlag: false,
setPriceForm:{ setPriceForm:{
commissionType: 1,
commissionPrice: '',
commissionPrice1: '',
commissionPrice2: '',
doctorId: '', doctorId: '',
serviceType: '', serviceType: '',
price: '' price: ''
...@@ -209,10 +226,12 @@ export default { ...@@ -209,10 +226,12 @@ export default {
tableData: [], tableData: [],
totalRows: 0, totalRows: 0,
setPriceRules: { setPriceRules: {
// price: [ price: [
// { required: true, message: '请输入价格', trigger: 'blur'}, {required: true, message: "请输入", trigger: 'blur'}
// { pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, message: '请输入正确额格式,可保留两位小数' } ],
// ], commissionType: [
{required: true, message: "请输入", trigger: 'blur'}
]
}, },
liveBack: false, liveBack: false,
timeClickFlag: true, timeClickFlag: true,
...@@ -231,6 +250,19 @@ export default { ...@@ -231,6 +250,19 @@ export default {
value: 2, value: 2,
label: "上架" label: "上架"
}], }],
commissionTypeList: [
{
value: 0,
label: "全部"
},
{
value: 1,
label: "按比例分佣"
},
{
value: 2,
label: "固定分佣金额"
}],
profit: 0, profit: 0,
selectedList:[], selectedList:[],
selectedPriceList:[], selectedPriceList:[],
...@@ -253,6 +285,7 @@ export default { ...@@ -253,6 +285,7 @@ export default {
); //减去一天的时间代表可以选择同一天; ); //减去一天的时间代表可以选择同一天;
} }
}, },
} }
}, },
mounted() { mounted() {
...@@ -307,6 +340,31 @@ export default { ...@@ -307,6 +340,31 @@ export default {
}); });
return; return;
} }
if(this.setPriceForm.commissionType == null || this.setPriceForm.commissionType == ""){
this.$message({
message: '请选择接诊服务费结算方式(上级医生)',
type: "warning"
});
return;
}
if(this.setPriceForm.commissionType == 1 && this.setPriceForm.commissionPrice1 == ""){
this.$message({
message: '请输入按比例分佣',
type: "warning"
});
return;
}
if(this.setPriceForm.commissionType == 2 && this.setPriceForm.commissionPrice2 == ""){
this.$message({
message: '请输入固定分佣',
type: "warning"
});
return;
}
let timeoutId = null let timeoutId = null
timeoutId && clearTimeout(timeoutId) timeoutId && clearTimeout(timeoutId)
timeoutId = setTimeout(() => { timeoutId = setTimeout(() => {
...@@ -322,7 +380,17 @@ export default { ...@@ -322,7 +380,17 @@ export default {
if(this.batchUpdatePriceFlag){ if(this.batchUpdatePriceFlag){
let setPriceList = []; let setPriceList = [];
for(let i = 0; i < this.multipleSelection.length; i++){ for(let i = 0; i < this.multipleSelection.length; i++){
setPriceList.push({doctorId: this.multipleSelection[i].doctorId, serviceType: this.multipleSelection[i].serviceType, price: this.setPriceForm.price}); if(this.setPriceForm.commissionType == 1){
this.setPriceForm.commissionPriceStr = this.setPriceForm.commissionPrice1;
}
else if(this.setPriceForm.commissionType == 2){
this.setPriceForm.commissionPriceStr = this.setPriceForm.commissionPrice2;
}
setPriceList.push({doctorId: this.multipleSelection[i].doctorId,
serviceType: this.multipleSelection[i].serviceType, price: this.setPriceForm.price,
commissionType: this.setPriceForm.commissionType,commissionPriceStr: this.setPriceForm.commissionPriceStr
});
} }
this.POST('/diagnose/doctorService/batchUpdatePrice', setPriceList).then(res => { this.POST('/diagnose/doctorService/batchUpdatePrice', setPriceList).then(res => {
this.loading = false this.loading = false
...@@ -343,6 +411,13 @@ export default { ...@@ -343,6 +411,13 @@ export default {
}); });
} }
else { else {
if(this.setPriceForm.commissionType == 1){
this.setPriceForm.commissionPriceStr = this.setPriceForm.commissionPrice1;
}
else if(this.setPriceForm.commissionType == 2){
this.setPriceForm.commissionPriceStr = this.setPriceForm.commissionPrice2;
}
this.POST('/diagnose/doctorService/updatePrice', this.setPriceForm).then(res => { this.POST('/diagnose/doctorService/updatePrice', this.setPriceForm).then(res => {
this.loading = false this.loading = false
// closeLoading(this); // closeLoading(this);
...@@ -539,14 +614,22 @@ export default { ...@@ -539,14 +614,22 @@ export default {
}, },
setPrice(row, batchUpdatePriceFlag){ setPrice(row, batchUpdatePriceFlag){
this.batchUpdatePriceFlag = batchUpdatePriceFlag; this.batchUpdatePriceFlag = batchUpdatePriceFlag;
this. setPriceForm.doctorId = row.doctorId; this.setPriceForm.doctorId = row.doctorId;
this.setPriceForm.serviceType = row.serviceType; this.setPriceForm.serviceType = row.serviceType;
this.setPriceForm.price = row.price; this.setPriceForm.price = row.price;
this.setPriceVisible = true this.setPriceForm.commissionType = row.commissionType;
if(this.setPriceForm.commissionType == 1){
this.setPriceForm.commissionPrice1 = row.commissionPriceStr;
}
else if(this.setPriceForm.commissionType == 2){
this.setPriceForm.commissionPrice2 = row.commissionPriceStr;
}
this.setPriceForm.price = row.price;
this.setPriceVisible = true;
if(this.$refs.setPriceForm) { if(this.$refs.setPriceForm) {
this.$refs.setPriceForm.resetFields() this.$refs.setPriceForm.resetFields()
} }
this.getProfit(row); // this.getProfit(row);
}, },
getProfit(row){ getProfit(row){
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册