You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
219 lines
6.5 KiB
219 lines
6.5 KiB
<template>
|
|
<div>
|
|
<div>
|
|
<div class="contenttitle">
|
|
明细记录
|
|
</div>
|
|
<!--公共表分类信息-->
|
|
<div style="display: flex; font-size: 14px">
|
|
<div :style="'display: block;width:' + (window.pageWidth - window.pageMarginWidth - 110 - 5) + 'px;'">
|
|
<el-table id="thirdMedicalCenterBookingDate" :data="thirdMedicalCenterBookingDate"
|
|
ref="thirdMedicalCenterBookingDate" row-key="id" border :height="`${tableHeight}px`" size="small"
|
|
highlight-current-row :row-class-name="handleRowClassName">
|
|
|
|
<el-table-column type="index" label="序号" width="50" align="center" />
|
|
<el-table-column label="体检中心" prop="thirdMedicalCenterId" min-width="200" align="center" />
|
|
<el-table-column prop="bookingDate" label="可约日期" min-width="130" align="center" />
|
|
|
|
</el-table>
|
|
</div>
|
|
<!--按钮-->
|
|
<div style="display: block; margin-left: 5px">
|
|
<div style="margin-top: 5px">
|
|
<el-button class="commonbutton" @click="btnSetBookDate">设置预约日期</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 新增或者编辑弹框 -->
|
|
<el-dialog title="设置可预约日期" :close-on-click-modal="false" :visible.sync="setting" width="240px"
|
|
@close="close_setting">
|
|
<div>
|
|
<el-table :data="form.bookingDates" border height="480px" size="small" highlight-current-row
|
|
:row-class-name="handleRowClassName" row-key="id">
|
|
<el-table-column label="可约日期" min-width="150" align="center">
|
|
<template slot-scope="scope">
|
|
<el-date-picker v-model="scope.row.bookingDate" type="date" placeholder="可约日期" size="small"
|
|
value-format="yyyy-MM-dd" style="width: 150px;" />
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column fixed="right" label="操作" width="60" align="center">
|
|
<template slot-scope="scope">
|
|
<i class="el-icon-delete" @click="form.bookingDates.splice(scope.$index, 1)"
|
|
style="font-size: 24px;color: red;cursor:pointer;"></i>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<div>
|
|
<el-button class="commonbutton" @click="form.bookingDates.push({ id: Math.random(), bookingDate: '' })">新增</el-button>
|
|
<el-button class="commonbutton" @click="btnSubmit">确定</el-button>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
<!-- -->
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import moment from "moment";
|
|
import Sortable from "sortablejs";
|
|
import { getapi, postapi, putapi, deletapi } from "@/api/api";
|
|
import { mapState } from "vuex";
|
|
import {
|
|
getPagePriv,
|
|
checkPagePriv,
|
|
dddw,
|
|
deepCopy,
|
|
objCopy,
|
|
arrayExistObj,
|
|
} from "../../utlis/proFunc";
|
|
|
|
|
|
|
|
export default {
|
|
components: {
|
|
|
|
},
|
|
data() {
|
|
return {
|
|
pagePriv: {
|
|
routeUrlorPageName: "commonTable", //当前页面归属路由或归属页面权限名称
|
|
privs: [], // 页面权限
|
|
},
|
|
|
|
thirdMedicalCenterBookingDate: [], // 公共表
|
|
setting: false,
|
|
form: {
|
|
thirdMedicalCenterId: "",
|
|
bookingDates: []
|
|
}
|
|
|
|
};
|
|
},
|
|
computed: {
|
|
...mapState(["pickerOptions", "personnelUnit", "window", "dict", "dialogWin", "dataTransOpts"]),
|
|
|
|
tableHeight() {
|
|
let h = this.window.pageHeight < 600 ? 600 : this.window.pageHeight
|
|
return h - this.window.pageHeaderHeight - this.window.cardHeaderHeight - this.window.pageMarginHeight - 360
|
|
},
|
|
},
|
|
|
|
created() {
|
|
//获取用户当前页面的权限
|
|
let userPriv = window.sessionStorage.getItem("userPriv");
|
|
if (userPriv)
|
|
this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName));
|
|
|
|
// 清除当前选中的分组ID
|
|
this.dataTransOpts.tableS.third_medical_center_booking_date.id = ''
|
|
|
|
|
|
|
|
},
|
|
|
|
mounted() {
|
|
//获取初始数据(单位、适用性别)
|
|
this.dictInit();
|
|
},
|
|
methods: {
|
|
moment,
|
|
checkPagePriv,
|
|
dddw,
|
|
deepCopy,
|
|
|
|
getList(body) {
|
|
// body = {
|
|
// "thirdMedicalCenterId": "string",
|
|
// "keyWord": "string"
|
|
// }
|
|
this.thirdMedicalCenterBookingDate = []
|
|
if (!body.thirdMedicalCenterId) return
|
|
postapi('/api/app/ThirdMedicalCenter/GetThirdMedicalCenterBookingDateList', body).then(res => {
|
|
if (res.code > -1) {
|
|
this.thirdMedicalCenterBookingDate = res.data
|
|
}
|
|
})
|
|
|
|
},
|
|
|
|
btnSubmit() {
|
|
let body = {
|
|
thirdMedicalCenterId: this.form.thirdMedicalCenterId,
|
|
bookingDates: []
|
|
}
|
|
|
|
this.form.bookingDates.forEach(e => {
|
|
if (e.bookingDate) body.bookingDates.push(e.bookingDate)
|
|
});
|
|
|
|
|
|
postapi('/api/app/ThirdMedicalCenter/CreateThirdMedicalCenterBookingDate', body)
|
|
.then(res => {
|
|
if (res.code > -1) {
|
|
this.setting = false
|
|
}
|
|
})
|
|
},
|
|
|
|
close_setting() {
|
|
this.getList({ thirdMedicalCenterId: this.dataTransOpts.tableS.third_medical_center.id })
|
|
},
|
|
|
|
//选中颜色
|
|
handleRowClassName({ row, rowIndex }) {
|
|
// highLightBg 为 'selected'的高亮
|
|
//console.log(rowIndex, row)
|
|
//return row.highLightBg == 'selected' ? 'high-light-bg' : '';
|
|
if (row.choosed) {
|
|
return "current-row";
|
|
} else {
|
|
return "";
|
|
}
|
|
},
|
|
|
|
//获取初始数据
|
|
dictInit() {
|
|
|
|
},
|
|
|
|
btnSetBookDate() {
|
|
if (!this.dataTransOpts.tableS.third_medical_center.id) {
|
|
this.$message.warning({ showClose: true, message: '未选择体检中心' })
|
|
return
|
|
}
|
|
|
|
this.form.thirdMedicalCenterId = this.dataTransOpts.tableS.third_medical_center.id
|
|
this.form.bookingDates = deepCopy(this.thirdMedicalCenterBookingDate)
|
|
|
|
this.setting = true
|
|
|
|
}
|
|
},
|
|
|
|
//监听事件
|
|
watch: {
|
|
// 刷新公共表数据
|
|
"dataTransOpts.refresh.third_medical_center_booking_date.M": {
|
|
// immediate:true,
|
|
handler(newVal, oldVal) {
|
|
console.log(`watch 公共表分类 newVal:${newVal} oldVal:${oldVal} thirdMedicalCenterId: ${this.dataTransOpts.tableS.third_medical_center.id}`);
|
|
if (newVal != oldVal) this.getList({ thirdMedicalCenterId: this.dataTransOpts.tableS.third_medical_center.id });
|
|
}
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<style scoped>
|
|
@import "../../assets/css/global_button.css";
|
|
@import "../../assets/css/global_dialog.css";
|
|
@import "../../assets/css/global_table.css";
|
|
@import "../../assets/css/global_form.css";
|
|
@import "../../assets/css/global_input.css";
|
|
@import "../../assets/css/global.css";
|
|
|
|
.btnClass {
|
|
width: 100px;
|
|
margin-bottom: 5px;
|
|
}
|
|
</style>
|