Browse Source

orgset

master
pengjun 2 years ago
parent
commit
cac84dec9a
  1. 318
      src/components/customerOrg/ContactPerson.vue
  2. 2
      src/components/customerOrg/customerOrgEdit.vue
  3. 243
      src/components/customerOrg/customerOrgRegister.vue
  4. 48
      src/components/customerOrg/customerOrgTree.vue
  5. 3
      src/store/index.js

318
src/components/customerOrg/ContactPerson.vue

@ -2,10 +2,10 @@
<div>
<div style="display:flex">
<div style="width: 95%;">
<el-table :data="data.contactPerson" border style="height: 175px" row-key="id" size="small"
class="el-table__body-wrapper tbody" highlight-current-row @row-click="rowickContactPerson"
ref="data.contactPerson">
<el-table-column prop="display_name" label="姓名" />
<el-table :data="customerOrg.contactPersonList" border height="150" row-key="id" size="small"
class="el-table__body-wrapper tbody" highlight-current-row @row-click="rowClick"
ref="customerOrg.contactPersonList">
<el-table-column prop="displayName" label="姓名" />
<el-table-column prop="title" label="职务" />
<el-table-column prop="remark" label="备注" />
<el-table-column prop="creatorName" label="创建者" width="" />
@ -21,11 +21,16 @@
</template>
</el-table-column>
</el-table>
<el-table :data="data.contactPerson" border style="height: 175px" row-key="id" size="small"
class="el-table__body-wrapper tbody" highlight-current-row @row-click="rowickContactPerson"
ref="data.contactPerson">
<el-table-column prop="contact_method_type" label="类型" />
<el-table-column prop="contact_method_value" label="联系方式" />
<el-table :data="customerOrg.contactMethodList" border height="150" row-key="id" size="small"
class="el-table__body-wrapper tbody" highlight-current-row @row-click="rowClickMethod"
ref="customerOrg.contactMethodList">
<el-table-column prop="contactMethodType" label="类型">
<template slot-scope="scope">
<div>{{scope.row.contactMethodType==='0' ? '手机':'邮箱'}}</div>
</template>
</el-table-column>
<el-table-column prop="contactMethodValue" label="联系方式" />
<el-table-column prop="creatorName" label="创建者" width="" />
<el-table-column prop="creationTime" label="创建时间" width="200">
<template slot-scope="scope">
@ -42,159 +47,130 @@
</div>
<div style="margin-left: 10px; margin-top: 5%">
<div style="margin-top: 10px">
<el-button type="primary" @click="addContactPerson">新增</el-button>
<el-button type="primary" @click="add">新增</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="success" @click="editContactPerson">编辑</el-button>
<el-button type="success" @click="edit">编辑</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="danger" @click="delContactPerson">删除</el-button>
<el-button type="danger" @click="del">删除</el-button>
</div>
</div>
</div>
<!-- 联系人 -->
<el-dialog title="新增" :visible.sync="dialogContactPerson" width="80%">
<el-form :model="formContactPerson" ref="formContactPerson" label-width="100px">
<el-dialog :title="formTitle" :visible.sync="dialogContactPerson" width="480">
<el-form :model="form" ref="form" label-width="100px" :rules="rules">
<el-row>
<el-col :span="8">
<el-form-item label="结果">
<el-input v-model="formContactPerson.result"></el-input>
<el-form-item label="联系人">
<el-input v-model="form.displayName"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职务">
<el-input v-model="form.title"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注">
<el-input v-model="form.remark"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="创建者">
<el-input v-model="customerOrg.customerOrgRd.creatorName" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="创建时间" style="margin-left: -5%">
<el-input :value="customerOrg.customerOrgRd.creationTime | dateFormat" disabled style="width: 90%"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="修改者" style="margin-left: -25%">
<el-input v-model="customerOrg.customerOrgRd.creatorName" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="修改时间" style="margin-left: -5%">
<el-input :value="customerOrg.customerOrgRd.lastModificationTime | dateFormat" disabled style="width: 90%"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-divider/>
<el-table :data="customerOrg.contactMethodList" border height="300" row-key="id" size="small"
class="el-table__body-wrapper tbody" highlight-current-row ref="contactMethod">
<el-table-column prop="contactMethodType" label="类型">
<template slot-scope="scope">
<el-select v-model="customerOrg.contactMethodList[scope.$index].contactMethodType">
<el-option
v-for="item in Methodtypes"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</template>
</el-table-column>
<el-table-column prop="contactMethodValue" label="联系方式">
<template slot-scope="scope">
<el-input v-model="customerOrg.contactMethodList[scope.$index].contactMethodValue" required/>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="60">
<template slot-scope="scope">
<i class="el-icon-delete" @click="deleteRow(scope.$index)" size="medium"></i>
</template>
</el-table-column>
</el-table>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click=""> </el-button>
<el-button type="primary" @click=""> </el-button>
<el-button @click="dialogContactPerson = false"> </el-button>
<el-button type="success" @click="addMethod">新增联系方式</el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { yzstr } from "@/utlis/validate";
import {
getporjectlists,
projectlist,
addproject,
priceitemlist,
posjrctid,
projectedit,
projectdeleft,
projttitem,
projectdreog,
} from "@/request/commonapi";
import { unitlist } from "@/request/systemapi";
import Sortable from "sortablejs";
import { mapState } from 'vuex'
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import CustomerOrgTree from '../../components/customerOrg/customerOrgTree.vue'
import CustomerOrgEdit from '../../components/customerOrg/customerOrgEdit.vue'
import CustomerOrgRegister from '../../components/customerOrg/customerOrgRegister.vue'
export default {
components: {
CustomerOrgTree,
CustomerOrgEdit,
CustomerOrgRegister,
},
data() {
return {
data:{
contactPerson:[]
},
personId:'',
form: {
customerOrgId:'',
displayName: "",
englishShortName: "",
itemTypeId: "",
price: "",
priceItemId: "",
unitId: "",
defaultResult: "",
referenceRangeTypeFlag: "",
isProduceSummary: "",
isNameIntoSummary: "",
isDiagnosisFunction: "",
diagnosisFunction: "",
isCalculationItem: "",
calculationFunction: "",
isContinueProcess: "",
resultTemplateTypeFlag: "",
inputCheck: "",
isActive: "",
title: "",
remark: "",
},
formTitle:'新增',
dialogContactPerson: false, //
dialogContactMethod: false, //
Methodtypes:[
//{ value: '',label: '' },
{ value: '0',label: '电话' },
{ value: '1',label: '邮箱' },
],
formContactPerson: {
}, //form
formContactMethod: {
}, //form
contactMethod: [], //form
rules: {
displayName: [
{ required: true, message: "请输入名称", trigger: "blur" },
],
englishShortName: [
{ required: true, message: "请输入英文缩写", trigger: "blur" },
],
itemTypeId: [
{ required: true, message: "请输入项目类别", trigger: "blur" },
],
price: [{ required: true, message: "请输入价格", trigger: "blur" }],
priceItemId: [
{ required: true, message: "请输入价表项目编码", trigger: "blur" },
],
unitId: [{ required: true, message: "请输入单位", trigger: "blur" }],
defaultResult: [
{ required: true, message: "请输入默认结果", trigger: "blur" },
],
referenceRangeTypeFlag: [
{ required: true, message: "请输入参考范围类别", trigger: "blur" },
],
isProduceSummary: [
{ required: true, message: "请选择是生成小结", trigger: "blur" },
],
isNameIntoSummary: [
{ required: true, message: "请输择称进入小结", trigger: "blur" },
],
isDiagnosisFunction: [
{ required: true, message: "请选择启用诊断函数", trigger: "blur" },
],
diagnosisFunction: [
{ required: true, message: "请输入诊断函数", trigger: "blur" },
],
isCalculationItem: [
{ required: true, message: "请选择计算项目", trigger: "blur" },
],
calculationFunction: [
{ required: true, message: "请输入计算函数", trigger: "blur" },
],
isContinueProcess: [
{ required: true, message: "请选择继续处理", trigger: "blur" },
],
resultTemplateTypeFlag: [
{
required: true,
message: "请输入结果模板类别标志",
trigger: "blur",
},
],
inputCheck: [
{ required: true, message: "请选择结果校验公式", trigger: "blur" },
],
isActive: [{ required: true, message: "请选择启用", trigger: "blur" }],
},
isshow: false,
};
},
@ -206,22 +182,106 @@ export default {
},
computed:{
...mapState(['customerOrg']),
},
methods: {
//
getContactPersonList(customerOrgId){
getapi(`/api/app/contact-person/in-customer-org-id/${customerOrgId}`).then(
(res) => {
//console.log('res.data',res.data)
this.customerOrg.contactPersonList = res.data
}
);
},
//
//api/app/contact-method/in-contact-person-id?ContactPersonId=3a0c08ad-4304-138b-d9e6-a7338739dfc4' \
getContactMethodList(ContactPersonId){
getapi('/api/app/contact-method/in-contact-person-id',{ContactPersonId}).then(
(res) => {
//console.log('res.data',res.data)
this.customerOrg.contactMethodList = res.data
}
);
},
//
addContactPerson() {
this.$message.success("新增 addContactPerson");
add() {
//this.$message.success(" addContactPerson");
this.dialogContactPerson = true
this.formTitle = "新增"
this.personId = ''
},
editContactPerson() {
this.$message.success("编辑 editContactPerson");
edit() {
//this.$message.success(" editContactPerson");
if(!this.personId || !this.customerOrg.customerOrgId){
alert("请先选择要编辑的联系人")
return
}
this.dialogContactPerson = true
this.formTitle = "编辑"
},
delContactPerson() {
del() {
this.$message.success("删除 delContactPerson");
},
rowickContactPerson(){
this.$message.success("rowickContactPerson");
deleteRow (index){
this.customerOrg.contactMethodList.splice(index, 1)
},
//
submit(){
if(this.formTitle === '新增'){
postapi('api/app/contact-person',form).then(
(res) => {
//console.log('res.data',res.data)
this.personId = res.data.id
return deletapi(`api/app/contact-method/${this.personId}`)
}
).then(
(res) => {
//console.log('res.data',res.data)
this.personId = res.data.id
return postapi('api/app/contact-method/many',contactMethod)
}
).then(
(res) => {
this.getContactPersonList(this.customerOrg.customerOrgId)
this.$message.success("操作成功!");
}
);
}else{
}
},
//
addMethod(){
this.customerOrg.contactMethodList.push({
contactMethodValue: "",
contactMethodType: "0",
contactPersonId: this.personId
})
},
rowClick(row){
// console.log('row',row)
// this.$message.success("rowClick");
this.personId = row.id
this.getContactMethodList(row.id)
},
rowClickMethod(row){
this.$message.success("rowClickMethod");
}
},
};
</script>

2
src/components/customerOrg/customerOrgEdit.vue

@ -100,7 +100,7 @@
</el-col>
</el-row>
<!-- -->
<el-divider></el-divider>
<el-divider/>
<el-row>
<el-col :span="5">
<el-form-item label="创建者">

243
src/components/customerOrg/customerOrgRegister.vue

@ -1,13 +1,25 @@
<template>
<div>
<div style="display: flex">
<el-table :data="data.customerOrgRegister" border style="width: 90%; height: 350px" row-key="id" size="small"
class="el-table__body-wrapper tbody" highlight-current-row @row-click="rowickCustomerOrgRegister"
ref="data.customerOrgRegister">
<el-table-column prop="medical_times" label="体检次数" />
<el-table-column prop="begin_time" label="开始日期" />
<el-table-column prop="end_time" label="结束日期" />
<el-table-column prop="is_complete" label="完成标志" />
<el-table :data="customerOrg.customerOrgRegisterList" border style="width: 90%;" height="300" row-key="id"
size="small" class="el-table__body-wrapper tbody" highlight-current-row @row-click="rowClick"
ref="customerOrg.customerOrgRegisterList">
<el-table-column prop="medicalTimes" label="体检次数" />
<el-table-column prop="beginTime" label="开始日期">
<template slot-scope="scope">
{{ scope.row.beginTime | dateFormat }}
</template>
</el-table-column>
<el-table-column prop="endTime" label="结束日期">
<template slot-scope="scope">
{{ scope.row.endTime | dateFormat }}
</template>
</el-table-column>
<el-table-column prop="isComplete" label="完成标志">
<template slot-scope="scope">
<div>{{ scope.row.isComplete === 'Y' ? '是' : '否' }}</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="创建者" width="" />
<el-table-column prop="creationTime" label="创建时间" width="200">
<template slot-scope="scope">
@ -23,69 +35,21 @@
</el-table>
<div style="margin-left: 10px; margin-top: 5%">
<div style="margin-top: 10px">
<el-button type="primary" @click="addTimes">增加次数</el-button>
<el-button type="primary" @click="add">增加次数</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="success" @click="editCustomerOrgRegister">体检完成</el-button>
<el-button type="success" @click="edit">体检完成</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="danger" @click="canselCustomerOrgRegister">取消完成</el-button>
<el-button type="danger" @click="cansel">取消完成</el-button>
</div>
</div>
</div>
<!-- 体检次数 -->
<el-dialog title="体检次数" :visible.sync="dialogCustomerOrgRegister" width="80%">
<div style="display: flex">
<div style="width: 95%">
<el-table border="" :data="formCustomerOrgRegister" highlight-current-row>
<el-table-column label="编号" prop="id"></el-table-column>
<el-table-column label="项目编号" prop="itemId"></el-table-column>
<el-table-column label="创建时间" width="200">
<template slot-scope="scope">
{{ scope.row.creationTime | dateFormat }}
</template>
</el-table-column>
<el-table-column label="修改时间" width="200">
<template slot-scope="scope">
{{ scope.row.lastModificationTime | dateFormat }}
</template>
</el-table-column>
<el-table-column label="结果" prop="result"></el-table-column>
<el-table-column label="项目结果">
<template slot-scope="scope">
{{ scope.row.id }}
</template>
</el-table-column>
<el-table-column label="诊断">
<template>
</template>
</el-table-column>
</el-table>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="rurestdialogVisible = false"> </el-button>
<el-button type="primary" @click="rurestdialogVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
getporjectlists,
projectlist,
addproject,
priceitemlist,
posjrctid,
projectedit,
projectdeleft,
projttitem,
projectdreog,
} from "@/request/commonapi";
import { unitlist } from "@/request/systemapi";
import Sortable from "sortablejs";
import { mapState, mapMutations } from 'vuex'
import { getapi, postapi, putapi, deletapi } from "@/api/api";
export default {
@ -94,108 +58,7 @@ export default {
},
data() {
return {
data: {
customerOrgRegister: [], //
},
form: {
displayName: "",
englishShortName: "",
itemTypeId: "",
price: "",
priceItemId: "",
unitId: "",
defaultResult: "",
referenceRangeTypeFlag: "",
isProduceSummary: "",
isNameIntoSummary: "",
isDiagnosisFunction: "",
diagnosisFunction: "",
isCalculationItem: "",
calculationFunction: "",
isContinueProcess: "",
resultTemplateTypeFlag: "",
inputCheck: "",
isActive: "",
},
dialogCustomerOrgRegister: false,//
dialogContactPerson: false, //
dialogContactMethod: false, //
formCustomerOrgRegister: {
}, // form
formContactPerson: {
}, //form
formContactMethod: {
}, //form
rules: {
displayName: [
{ required: true, message: "请输入名称", trigger: "blur" },
],
englishShortName: [
{ required: true, message: "请输入英文缩写", trigger: "blur" },
],
itemTypeId: [
{ required: true, message: "请输入项目类别", trigger: "blur" },
],
price: [{ required: true, message: "请输入价格", trigger: "blur" }],
priceItemId: [
{ required: true, message: "请输入价表项目编码", trigger: "blur" },
],
unitId: [{ required: true, message: "请输入单位", trigger: "blur" }],
defaultResult: [
{ required: true, message: "请输入默认结果", trigger: "blur" },
],
referenceRangeTypeFlag: [
{ required: true, message: "请输入参考范围类别", trigger: "blur" },
],
isProduceSummary: [
{ required: true, message: "请选择是生成小结", trigger: "blur" },
],
isNameIntoSummary: [
{ required: true, message: "请输择称进入小结", trigger: "blur" },
],
isDiagnosisFunction: [
{ required: true, message: "请选择启用诊断函数", trigger: "blur" },
],
diagnosisFunction: [
{ required: true, message: "请输入诊断函数", trigger: "blur" },
],
isCalculationItem: [
{ required: true, message: "请选择计算项目", trigger: "blur" },
],
calculationFunction: [
{ required: true, message: "请输入计算函数", trigger: "blur" },
],
isContinueProcess: [
{ required: true, message: "请选择继续处理", trigger: "blur" },
],
resultTemplateTypeFlag: [
{
required: true,
message: "请输入结果模板类别标志",
trigger: "blur",
},
],
inputCheck: [
{ required: true, message: "请选择结果校验公式", trigger: "blur" },
],
isActive: [{ required: true, message: "请选择启用", trigger: "blur" }],
},
isshow: false,
customerOrgRegisterId: '',//ID
};
},
@ -209,25 +72,67 @@ export default {
},
computed: {
...mapState(['customerOrg']),
},
methods: {
//
rowickCustomerOrgRegister() {
this.$message.success("rowickCustomerOrgRegister");
rowClick(row) {
this.customerOrgRegisterId = row.id
},
//
getCustomerOrgRegisterList(customerOrgId) {
getapi(`/api/app/customer-org-register/in-customer-org-id/${customerOrgId}`).then(
(res) => {
//console.log('res.data',res.data)
this.customerOrg.customerOrgRegisterList = res.data
}
);
this.customerOrgRegisterId = ''
},
//
setOrgRegisterState(IsComplete) {
if (!this.customerOrg.customerOrgId || !this.customerOrgRegisterId) {
console.log(this.customerOrg.customerOrgId, this.customerOrgRegisterId)
alert("请选中要操作的体检次数")
return
}
//console.log(`/api/app/customer-org-register/${this.customerOrgRegisterId}/state`)
putapi(`/api/app/customer-org-register/${this.customerOrgRegisterId}/state?IsComplete=${IsComplete}`).then(
(res) => {
console.log('设置体检次数状态', res.data)
this.getCustomerOrgRegisterList(this.customerOrg.customerOrgId)
this.$message.success("操作成功!");
}
);
},
//
addTimes() {
this.$message.success("增加次数 addTimes");
add() {
//this.$message.success(" addTimes");
if (!this.customerOrg.customerOrgId) {
alert("未选中单位")
return
}
postapi(`/api/app/customer-org-register/default/${this.customerOrg.customerOrgId}`).then(
(res) => {
this.getCustomerOrgRegisterList(this.customerOrg.customerOrgId)
this.$message.success("操作成功!");
}
);
},
editCustomerOrgRegister() {
this.$message.success("体检完成 editCustomerOrgRegister");
edit() {
//this.$message.success(" editCustomerOrgRegister");
this.setOrgRegisterState('Y')
},
canselCustomerOrgRegister() {
this.$message.success("取消完成 canselCustomerOrgRegister");
cansel() {
//this.$message.success(" editCustomerOrgRegister");
this.setOrgRegisterState('N')
},

48
src/components/customerOrg/customerOrgTree.vue

@ -26,6 +26,7 @@ export default {
methods: {
...mapMutations(['setData']),
//
getCustomerOrgTree(){
//let customerOrgTree = []
@ -54,22 +55,46 @@ export default {
},
//
getCustomerOrgRd(id){
getapi(`/api/app/customer-org/${id}`).then((res) => {
//console.log("res.data", res.data);
this.customerOrg.customerOrgRd = res.data
});
},
//
getCustomerOrgRegisterList(){
getapi("/api/app/customer-org-register/in_filter").then(
getCustomerOrgRegisterList(customerOrgId){
getapi(`/api/app/customer-org-register/in-customer-org-id/${customerOrgId}`).then(
(res) => {
//console.log('res.data',res.data)
this.setData({ key: 'customerOrg.customerOrgRegisterList', value: res.data})
this.customerOrg.customerOrgRegisterList = res.data
}
);
},
//
getCustomerOrgRegisterList(){
getapi("/api/app/customer-org-register/in_filter").then(
//
getContactPersonList(customerOrgId){
getapi(`/api/app/contact-person/in-customer-org-id/${customerOrgId}`).then(
(res) => {
//console.log('res.data',res.data)
this.setData({ key: 'customerOrg.customerOrgRegisterList', value: res.data})
this.customerOrg.contactPersonList = res.data
if(res.data.length > 0){
this.getContactMethodList(res.data[0].id)
}else{
this.customerOrg.contactMethodList = []
}
}
);
},
//
//api/app/contact-method/in-contact-person-id?ContactPersonId=3a0c08ad-4304-138b-d9e6-a7338739dfc4' \
getContactMethodList(ContactPersonId){
getapi('/api/app/contact-method/in-contact-person-id',{ContactPersonId}).then(
(res) => {
//console.log('res.data',res.data)
this.customerOrg.contactMethodList = res.data
}
);
},
@ -77,11 +102,10 @@ export default {
//
treeclick(data) {
//this.$message.success(data.id + " " + data.displayName);// api/app/customer-org/3a0c0439-a5ca-8a63-b2b9-e0eb24cb58b1
//getapi(`/api/app/customer-org/3a0c0439-a5ca-8a63-b2b9-e0eb24cb58b1`).then((res) => {
getapi(`/api/app/customer-org/${data.id}`).then((res) => {
//console.log("res.data", res.data);
this.setData({ key: 'customerOrg.customerOrgRd', value: res.data})
});
this.customerOrg.customerOrgId = data.id
this.getCustomerOrgRd(data.id)
this.getCustomerOrgRegisterList(data.id)
this.getContactPersonList(data.id)
},
},
};

3
src/store/index.js

@ -16,7 +16,8 @@ export default new Vuex.Store({
customerOrgId:'',//当前单位ID(可根据此值是否为空,判断是新增还是编辑)
customerOrgRd:{displayName:'单位名称',englishShortName:'简称'}, //单个体检单位记录值
customerOrgRegisterList: [], //单位体检次数登记列表
contactPersonList:[], //联系人列表
contactMethodList:[] //联系方式列表
}
},
getters: {},

Loading…
Cancel
Save