| | |
| | | } |
| | | } |
| | | }, |
| | | "@tinymce/tinymce-vue": { |
| | | "version": "3.2.8", |
| | | "resolved": "https://registry.npmmirror.com/@tinymce/tinymce-vue/-/tinymce-vue-3.2.8.tgz", |
| | | "integrity": "sha512-jEz+NZ0g+FZFz273OEUWz9QkwPMyjc5AJYyxOgu51O1Y5UaJ/6IUddXTX6A20mwCleEv5ebwNYdalviafx4fnA==" |
| | | }, |
| | | "@transloadit/prettier-bytes": { |
| | | "version": "0.0.7", |
| | | "resolved": "https://registry.npmjs.org/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", |
| | |
| | | "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", |
| | | "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" |
| | | }, |
| | | "tinymce": { |
| | | "version": "5.10.9", |
| | | "resolved": "https://registry.npmmirror.com/tinymce/-/tinymce-5.10.9.tgz", |
| | | "integrity": "sha512-5bkrors87X9LhYX2xq8GgPHrIgJYHl87YNs+kBcjQ5I3CiUgzo/vFcGvT3MZQ9QHsEeYMhYO6a5CLGGffR8hMg==" |
| | | }, |
| | | "tmp": { |
| | | "version": "0.2.3", |
| | | "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.2.3.tgz", |
| | |
| | | addStandardProduct: "/standardTree/addStandardProduct", //æ°å¢æ åæ ä¸çæ£éªé¡¹ç® |
| | | delStandardTree: "/standardTree/delStandardTree", //å 餿 åæ çå±çº§ |
| | | selectStandardProductList: "/standardTree/selectStandardProductList", //éè¿æ åæ æ¥è¯¢å¯¹åºçæ£éªé¡¹ç® |
| | | selectStandardProductListByMethodId: "/standardTree/selectStandardProductListByMethodId", //éè¿æ£éªæ åæ¥è¯¢æ£éªé¡¹ç® |
| | | } |
| | | |
| | | const standardMethod = { |
| | | selectStandardMethodList: "/standardMethod/selectStandardMethodList", //è·åæ åæ¹æ³å表 |
| | | selectStandardMethods: "/standardMethod/selectStandardMethods", //è·åæ åæ¹æ³æä¸¾ |
| | | addStandardMethod: "/standardMethod/addStandardMethod", //æ·»å æ åæ¹æ³ |
| | | upStandardMethod: "/standardMethod/upStandardMethod", //ä¿®æ¹æ åæ¹æ³ |
| | | delStandardMethod: "/standardMethod/delStandardMethod", //å 餿 åæ¹æ³ |
| | | } |
| | | |
| | | const StandardTemplate = { |
| | |
| | | <span style="color: #3A7BFA;">ä¿å模æ¿</span> |
| | | </el-button> |
| | | <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-show="active==1">æäº¤</el-button> |
| | | <el-button size="medium" @click="upInsOrderOfState(2)" :loading="saveLoad" v-show="active==3">å®¡æ ¸ä¸éè¿</el-button> |
| | | <el-button size="medium" type="primary" @click="upInsOrderOfState(1)" :loading="saveLoad" v-show="active==3">å®¡æ ¸éè¿</el-button> |
| | | <el-button size="medium" @click="upInsOrderOfState(2)" :loading="saveLoad" v-show="active==3">ä¸éè¿</el-button> |
| | | <el-button size="medium" type="primary" @click="upInsOrderOfState(1)" :loading="saveLoad" v-show="active==3">éè¿</el-button> |
| | | <el-button size="medium" @click="$parent.playOrder(0)"> |
| | | <span style="color: #3A7BFA;">è¿å</span> |
| | | </el-button> |
| | |
| | | <div class="search_label"><span class="required-span">* </span>ä¸ååä½ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="éæ©ä¸å客æ·" clearable disabled v-model="addObj.company"></el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="6"> |
| | | <div class="search_label">éæ±æ¶é´ï¼</div> |
| | | <div class="search_input"> |
| | | <el-date-picker type="date" placeholder="éæ©æ¥æ" size="small" value-format="yyyy-MM-dd" style="width: 100%;" |
| | | v-model="addObj.appointed"></el-date-picker> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="6"> |
| | |
| | | </div> |
| | | <div> |
| | | <div style="text-align: right;line-height: 45px;" v-if="active<2"> |
| | | <el-button type="primary" size="small" @click="addSampleDia = true" >æ·»å æ ·å</el-button> |
| | | <el-button type="primary" size="small" @click="addSampleDia = true">æ·»å æ ·å</el-button> |
| | | <el-button size="small" @click="delSample"> |
| | | <span style="color: #3A7BFA;">å 餿 ·å</span> |
| | | </el-button> |
| | |
| | | } |
| | | </style> |
| | | <style> |
| | | .value-table .highlight-warning-row-border td{ |
| | | border-top: 2px solid #ffcd29; |
| | | border-bottom: 2px solid #ffcd29; |
| | | } |
| | | .value-table .highlight-warning-row-border td:first-child{ |
| | | border-left: 2px solid #ffcd29; |
| | | } |
| | | .value-table .highlight-warning-row-border td:last-child{ |
| | | border-right: 2px solid #ffcd29; |
| | | } |
| | | .value-table .highlight-danger-row-border td{ |
| | | border-top: 2px solid red; |
| | | border-bottom: 2px solid red; |
| | | } |
| | | .value-table .highlight-danger-row-border td:first-child{ |
| | | border-left: 2px solid red; |
| | | } |
| | | .value-table .highlight-danger-row-border td:last-child{ |
| | | border-right: 2px solid red; |
| | | } |
| | | .value-table .highlight-warning-row-border td { |
| | | border-top: 2px solid #ffcd29; |
| | | border-bottom: 2px solid #ffcd29; |
| | | } |
| | | |
| | | .value-table .highlight-warning-row-border td:first-child { |
| | | border-left: 2px solid #ffcd29; |
| | | } |
| | | |
| | | .value-table .highlight-warning-row-border td:last-child { |
| | | border-right: 2px solid #ffcd29; |
| | | } |
| | | |
| | | .value-table .highlight-danger-row-border td { |
| | | border-top: 2px solid red; |
| | | border-bottom: 2px solid red; |
| | | } |
| | | |
| | | .value-table .highlight-danger-row-border td:first-child { |
| | | border-left: 2px solid red; |
| | | } |
| | | |
| | | .value-table .highlight-danger-row-border td:last-child { |
| | | border-right: 2px solid red; |
| | | } |
| | | |
| | | .value-table .el-upload { |
| | | width: 100%; |
| | | } |
| | |
| | | </el-table-column> |
| | | <el-table-column type="index" align="center" label="åºå·" width="70" v-if="data.isIndex" :key="Math.random()"> |
| | | </el-table-column> |
| | | <el-table-column :prop="a.label" :label="a.value" :sortable="data.sort==false?false:'custom'" v-for="(a, ai) in tableHead" :key="ai" |
| | | show-overflow-tooltip min-width="160"> |
| | | <el-table-column :prop="a.label" :label="a.value" :sortable="data.sort==false?false:'custom'" |
| | | v-for="(a, ai) in tableHead" :key="ai" show-overflow-tooltip min-width="160"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="showType(a.label, data.tagField) != null"> |
| | | <el-tag v-for="(b, bi) in data.tagField[a.label].select" :key="bi" v-if="b.value == scope.row[a.label]" |
| | | :type="b.type" size="medium">{{b.label}}</el-tag> |
| | | <template v-if="typeof(scope.row[a.label]) == 'object'"> |
| | | <template v-for="(param, i) in scope.row[a.label]"> |
| | | <el-tag v-for="(b, bi) in data.tagField[a.label].select" :key="bi" v-if="b.value == param" |
| | | :type="b.type" size="medium" style="margin-right: 5px;">{{b.label}}</el-tag> |
| | | </template> |
| | | </template> |
| | | <template v-else> |
| | | <el-tag v-for="(b, bi) in data.tagField[a.label].select" :key="bi" v-if="b.value == scope.row[a.label]" |
| | | :type="b.type" size="medium">{{b.label}}</el-tag> |
| | | </template> |
| | | </div> |
| | | <!-- 坿ä½è¡è¿è¡ç¹å»äºä»¶ --> |
| | | <span v-else-if="data.linkEvent&&showLink(a.label, data.linkEvent)" style="color:#409EFF;cursor: pointer;" @click="handleLinkEvent(scope.row,data.linkEvent[a.label])">{{scope.row[a.label]}}</span> |
| | | <!-- 坿ä½è¡è¿è¡ç¹å»äºä»¶ --> |
| | | <span v-else-if="data.linkEvent&&showLink(a.label, data.linkEvent)" style="color:#409EFF;cursor: pointer;" |
| | | @click="handleLinkEvent(scope.row,data.linkEvent[a.label])">{{scope.row[a.label]}}</span> |
| | | <span v-else>{{scope.row[a.label]}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" align="center" label="æä½" :width="getWidth()" |
| | | v-if="data.do.length > 0"> |
| | | <el-table-column fixed="right" align="center" label="æä½" :width="getWidth()" v-if="data.do.length > 0"> |
| | | <template slot-scope="scope"> |
| | | <el-button v-for="(a, ai) in data.do" :key="ai" :type="a.type" |
| | | :disabled="a.disabFun ? a.disabFun(scope.row,scope.$index) : false" |
| | | :disabled="a.disabFun ? a.disabFun(scope.row,scope.$index) : false" |
| | | @click="main(scope.row, a)">{{a.font}}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog title="ç¼è¾" :visible.sync="upDia" :width="data.row==1?'500px':500+data.row * 200 + 'px'"> |
| | | <div class="body" v-if="upDia" style="max-height: 550px;overflow-y: auto;padding: 5px 0;"> |
| | | <div class="body" v-if="upDia" style="max-height: 550px;overflow-y: auto;padding: 5px 10px 5px 0;"> |
| | | <div v-if="data.row > 1"> |
| | | <div v-for="(a, ai) in upHead" :key="ai" style="line-height: 50px;"> |
| | | <el-col :span="6/data.row" style="text-align: right;"> |
| | | <el-col :span="6/data.row" style="text-align: right;" :offset="1"> |
| | | <span class="required-span" v-if="showUpReq(a.label)">* </span>{{a.value}}ï¼ |
| | | </el-col> |
| | | <el-col :span="16/data.row" :offset="1"> |
| | | <el-col :span="16/data.row"> |
| | | <el-input v-model="upData[a.label]" size="small" clearable :placeholder="`请è¾å
¥${a.value}`" |
| | | v-if="showType(a.label, data.selectField) == null" :disabled="isDisabled(a.label)"></el-input> |
| | | <el-select v-model="upData[a.label]" size="small" v-if="showType(a.label, data.selectField) != null" |
| | | style="width: 100%;" :disabled="isDisabled(a.label)" clearable> |
| | | <el-select v-model="upData[a.label]" :multiple="data.selectField[a.label].choose" size="small" |
| | | v-if="showType(a.label, data.selectField) != null" style="width: 100%;" :disabled="isDisabled(a.label)" |
| | | clearable> |
| | | <el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi" :value="b.value" |
| | | :label="b.label"></el-option> |
| | | :label="b.label"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-col> |
| | | </div> |
| | |
| | | <el-col :span="16" :offset="1"> |
| | | <el-input v-model="upData[a.label]" size="small" clearable :placeholder="`请è¾å
¥${a.value}`" |
| | | v-if="showType(a.label, data.selectField) == null" :disabled="isDisabled(a.label)"></el-input> |
| | | <el-select v-model="upData[a.label]" size="small" v-if="showType(a.label, data.selectField) != null" |
| | | style="width: 100%;" :disabled="isDisabled(a.label)" clearable> |
| | | <el-select v-model="upData[a.label]" :multiple="data.selectField[a.label].choose" size="small" |
| | | v-if="showType(a.label, data.selectField) != null" style="width: 100%;" :disabled="isDisabled(a.label)" |
| | | clearable> |
| | | <el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi" :value="b.value" |
| | | :label="b.label"></el-option> |
| | | </el-select> |
| | |
| | | } from 'iview'; |
| | | export default { |
| | | props: { |
| | | tableRowClassName:{ |
| | | type: Function |
| | | }, |
| | | tableRowClassName: { |
| | | type: Function |
| | | }, |
| | | url: { |
| | | type: String, |
| | | default: () => null |
| | |
| | | this.total = res.data.body.total |
| | | this.tableHead = res.data.head |
| | | this.tableData = res.data.body.records |
| | | for (var a in this.data.selectField) { |
| | | if (this.data.selectField[a].choose == true) { |
| | | this.tableData.map(b => { |
| | | try { |
| | | b[a] = JSON.parse(b[a]) |
| | | } catch (e) {} |
| | | }) |
| | | } |
| | | } |
| | | this.loading = false |
| | | }).catch(e => { |
| | | this.loading = false |
| | |
| | | var str = ob[val] |
| | | return str == undefined ? null : ob[val].select |
| | | }, |
| | | showLink(val, ob){ |
| | | var str = ob[val] |
| | | showLink(val, ob) { |
| | | var str = ob[val] |
| | | return str == undefined ? null : ob[val].method |
| | | }, |
| | | }, |
| | | showAddReq(label) { |
| | | if (this.data.requiredAdd == undefined) { |
| | | return |
| | |
| | | delete this.upData.createUser |
| | | delete this.upData.updateUser |
| | | val.field.forEach(a => { |
| | | if (this.upData[a] == undefined) { |
| | | if (this.upData[a] === undefined) { |
| | | this.upHead.push({ |
| | | value: a.split('=')[0], |
| | | label: a.split('=')[1] |
| | |
| | | } else { |
| | | delete row.orderBy |
| | | this.$parent[val.method](row) |
| | | // this.$emit(val.method, row) |
| | | } |
| | | }, |
| | | saveUpData() { |
| | |
| | | } |
| | | } |
| | | this.upLoad = true |
| | | for (var a in this.data.selectField) { |
| | | if (this.data.selectField[a].choose == true) { |
| | | this.upData[a] = JSON.stringify(this.upData[a]) |
| | | } |
| | | } |
| | | this.$axios.post(this.upUrl, this.upData, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | |
| | | }); |
| | | return sums; |
| | | }, |
| | | handleLinkEvent(row,val){ |
| | | if(val.method=='doDiy'){ |
| | | this.main(row,val) |
| | | }else{ |
| | | handleLinkEvent(row, val) { |
| | | if (val.method == 'doDiy') { |
| | | this.main(row, val) |
| | | } else { |
| | | this.$parent[val.method](row) |
| | | } |
| | | }, |
| | | getWidth(){ |
| | | } |
| | | }, |
| | | getWidth() { |
| | | let count = 0 |
| | | this.data.do.forEach(a=>{ |
| | | this.data.do.forEach(a => { |
| | | count += a.font.length |
| | | }) |
| | | return count * 15 + 60 + 'px' |
| | |
| | | templateId:{ |
| | | select:[] |
| | | }, |
| | | sonLaboratory: {select:[]} |
| | | sonLaboratory: {select:[]}, |
| | | unit: {select:[]}, |
| | | sample: {select:[]}, |
| | | }, |
| | | selectField: { |
| | | inspectionItemType: { |
| | |
| | | templateId:{ |
| | | select:[] |
| | | }, |
| | | method:{select:[]}, |
| | | method:{select:[],choose: true}, |
| | | deviceGroup:{select:[]}, |
| | | sample: {select:[]}, |
| | | sonLaboratory: {select:[]} |
| | | sonLaboratory: {select:[]}, |
| | | unit: {select:[]} |
| | | }, |
| | | requiredAdd: ['sonLaboratory','inspectionItem', 'manHour', 'inspectionItemType','inspectionItemSubclass','inspectionValueType','laboratory','unit','method','price','manDay','deviceGroup','checkoutNumber','sample'], |
| | | requiredUp: ['sonLaboratory','inspectionItem', 'manHour', 'inspectionItemType','inspectionItemSubclass','inspectionValueType','laboratory','unit','method','price','manDay','deviceGroup','checkoutNumber','sample'] |
| | |
| | | this.selectTestObjectByName() |
| | | this.getStandardTemplate() |
| | | this.selectEnumByCategoryForSLaboratory() |
| | | this.selectEnumByCategoryForUnit() |
| | | this.getPower('0') |
| | | }, |
| | | methods: { |
| | |
| | | this.itemParameterData.tagField.sonLaboratory.select = res.data |
| | | }) |
| | | }, |
| | | selectEnumByCategoryForUnit() { |
| | | this.$axios.post(this.$api.enums.selectEnumByCategory, { |
| | | category: "åä½" |
| | | }).then(res => { |
| | | this.itemParameterData.selectField.unit.select = res.data |
| | | this.itemParameterData.tagField.unit.select = res.data |
| | | }) |
| | | }, |
| | | obtainItemParameterList() { |
| | | this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => { |
| | | let data = [] |
| | |
| | | res.data.forEach(a => { |
| | | data.push({ |
| | | label: a.specimenName, |
| | | value: a.specimenName |
| | | value: a.id, |
| | | type: 'success' |
| | | }) |
| | | }) |
| | | this.itemParameterData.selectField.sample.select = data |
| | | this.itemParameterData.tagField.sample.select = data |
| | | }) |
| | | }, |
| | | getStandardTemplate() { |
ÎļþÃû´Ó src/components/view/standard_method.vue ÐÞ¸Ä |
| | |
| | | <el-row class="title"> |
| | | <el-col :span="12" style="padding-left: 20px;">æ åæ¹æ³</el-col> |
| | | <el-col :span="12" style="text-align: right;"> |
| | | <!-- <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">æ°å¢</el-button> --> |
| | | <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">æ°å¢</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="table"> |
| | | <ValueTable ref="ValueTable" :url="$api.standardMethod.selectStandardMethodList" :componentData="componentData" :key="upIndex"/> |
| | | <ValueTable ref="ValueTable" :url="$api.standardMethod.selectStandardMethodList" |
| | | :delUrl="$api.standardMethod.delStandardMethod" :upUrl="$api.standardMethod.upStandardMethod" :componentData="componentData" :key="upIndex"/> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | font: 'ç¼è¾', |
| | | type: 'text', |
| | | method: 'doDiy', |
| | | field:['createUserName','updateUserName'] |
| | | field:['sampleType','createUserName','updateUserName','æ£éªå¯¹è±¡=structureTestObjectId'] |
| | | },{ |
| | | id: 'delete', |
| | | font: 'å é¤', |
| | | type: 'text', |
| | | method: 'doDiy' |
| | | }], |
| | | tagField: {}, |
| | | selectField: {}, |
| | | requiredAdd:['code','name'], |
| | | requiredUp:['code','name'] |
| | | tagField: { |
| | | structureTestObjectId:{select: []} |
| | | }, |
| | | selectField: { |
| | | structureTestObjectId:{select: []} |
| | | }, |
| | | requiredAdd:['code','name','structureTestObjectId'], |
| | | requiredUp:['code','name','structureTestObjectId'] |
| | | }, |
| | | entityCopy: {}, |
| | | upIndex: 0, |
| | |
| | | mounted() { |
| | | this.entityCopy = this.HaveJson(this.componentData.entity) |
| | | this.getPower() |
| | | this.selectTestObjectByName() |
| | | }, |
| | | methods: { |
| | | refreshTable() { |
| | |
| | | let del = false |
| | | let add = false |
| | | for (var i = 0; i < power.length; i++) { |
| | | /* if(power[i].menuMethod=='addEnum'){ |
| | | if(power[i].menuMethod=='addStandardMethod'){ |
| | | add = true |
| | | } */ |
| | | } |
| | | if(power[i].menuMethod=='delStandardMethod'){ |
| | | del = true |
| | | } |
| | | if(power[i].menuMethod=='upStandardMethod'){ |
| | | up = true |
| | | } |
| | | } |
| | | if(!del){ |
| | | this.componentData.do.splice(1, 1) |
| | |
| | | this.componentData.do.splice(0, 1) |
| | | } |
| | | this.addPower = add |
| | | } |
| | | }, |
| | | openAdd(){ |
| | | this.$refs.ValueTable.openAddDia(this.$api.standardMethod.addStandardMethod); |
| | | }, |
| | | selectTestObjectByName() { |
| | | this.$axios.get(this.$api.capacityScope.selectTestObjectByName).then(res => { |
| | | let data = [] |
| | | res.data.forEach(a => { |
| | | data.push({ |
| | | label: a.specimenName, |
| | | value: a.id |
| | | }) |
| | | }) |
| | | this.componentData.selectField.structureTestObjectId.select = data |
| | | this.componentData.tagField.structureTestObjectId.select = data |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | border-radius: 8px 0 0 8px; |
| | | } |
| | | |
| | | .tab li:nth-child(4) { |
| | | .tab li:nth-child(5) { |
| | | border-radius: 0 8px 8px 0; |
| | | } |
| | | |
| | |
| | | entity: { |
| | | entrustCode: null, |
| | | sample: null, |
| | | state: 1, |
| | | state: 0, |
| | | orderBy: { |
| | | field: 'id', |
| | | order: 'asc' |
| | |
| | | return row.state == 2 || row.state == 3 |
| | | } |
| | | }, { |
| | | font: 'ä¸å', |
| | | font: 'åé
', |
| | | type: 'text', |
| | | method: 'handleIssued', |
| | | disabFun: (row, index) => { |
| | | return row.state != 1 || row.sendTime != null |
| | | } |
| | | }], |
| | | linkEvent:{ |
| | | entrustCode:{ |
| | | method:'selectAllByOne' |
| | | } |
| | | linkEvent: { |
| | | entrustCode: { |
| | | method: 'selectAllByOne' |
| | | } |
| | | }, |
| | | tagField: { |
| | | type: { |
| | |
| | | addPower: true, |
| | | upLoad: false, |
| | | tabList: [{ |
| | | label: 'æ£éªå¤ç', |
| | | label: 'å¾
å®¡æ ¸', |
| | | value: 0 |
| | | }, { |
| | | label: 'å¾
æ£éª', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: 'å¾
å®¡æ ¸', |
| | | value: 0 |
| | | label: 'å·²æ£éª', |
| | | value: 4 |
| | | }, |
| | | { |
| | | label: 'éå', |
| | |
| | | }, |
| | | ], |
| | | tabIndex: 0, |
| | | active: 0,//1ï¼ä¸åï¼2ï¼æ¥çï¼3ï¼å®¡æ ¸ |
| | | currentId:null |
| | | active: 0, //1ï¼ä¸åï¼2ï¼æ¥çï¼3ï¼å®¡æ ¸ |
| | | currentId: null |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | }, |
| | | // 详æ
|
| | | selectAllByOne(row) { |
| | | this.active = 2; |
| | | this.active = 2; |
| | | // console.log(row); |
| | | // //æå¼å¼¹æ¡ |
| | | // this.dialogVisible = true; |
| | | // //row = ç¹å»å¯¹åºè¡å¼ |
| | | // //å¤å¶ç»formData |
| | | // this.formData = this.HaveJson(row); |
| | | this.currentId = row.id |
| | | this.currentId = row.id |
| | | }, |
| | | // æ°æ®æ¥ç |
| | | handleDataLook(row) { |
| | | this.dataDialogVisible = true; |
| | | }, |
| | | // ä¸è½½æ¥å |
| | | download(row) { |
| | | }, |
| | | download(row) {}, |
| | | // å®¡æ ¸ |
| | | handleVerify(row) { |
| | | // this.verifyDialogVisible = true; |
| | | this.active = 3; |
| | | this.currentId = row.id |
| | | this.active = 3; |
| | | this.currentId = row.id |
| | | }, |
| | | // æ¤é |
| | | handlEquash(row) { |
| | |
| | | // ä¸å |
| | | handleIssued(row) { |
| | | this.issuedDialogVisible = true; |
| | | this.$axios.post(this.$api.insOrder.selectOrderManDay,{ |
| | | this.$axios.post(this.$api.insOrder.selectOrderManDay, { |
| | | id: row.sampleId |
| | | }).then(res=>{ |
| | | }).then(res => { |
| | | this.distributeData.orderId = row.id |
| | | this.distributeData.sampleId = row.sampleId |
| | | this.distributeData.appointed = res.data |
| | |
| | | }) |
| | | }, |
| | | submitForm2() { |
| | | if(this.distributeData.appointed==null||this.distributeData.appointed==''){ |
| | | if (this.distributeData.appointed == null || this.distributeData.appointed == '') { |
| | | this.$message.error('çº¦å®æ¶é´æªå¡«å') |
| | | return |
| | | } |
| | |
| | | height: calc(100% - 275px); |
| | | margin-top: 5px; |
| | | background-color: white; |
| | | user-select: none; |
| | | } |
| | | |
| | | .product_table .el-table { |
| | |
| | | .standard .standard_table .el-table__row .cell { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .standard .el-table .warning-row .cell { |
| | | color: #bababa; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | |
| | | <el-button type="primary" icon="el-icon-plus" size="mini" circle @click="addDia = true"></el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" |
| | | node-key="label" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current |
| | | @node-expand="nodeOpen" @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="true" :default-expanded-keys="expandedKeys"> |
| | | <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" node-key="label" |
| | | :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" |
| | | @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false" |
| | | :default-expanded-keys="expandedKeys"> |
| | | <div class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <el-row> |
| | | <el-col :span="21"> |
| | |
| | | <el-row class="title"> |
| | | <el-col :span="10" style="font-size: 14px;color: #999;">{{selectTree}}</el-col> |
| | | <el-col :span="selectTree==''?24:14" style="text-align: right;" v-if="selectTree!=''"> |
| | | <el-button size="small" type="primary" @click="addStandardDia = true" |
| | | <!-- <el-button size="small" type="primary" @click="addStandardDia = true" |
| | | v-if="addStandardMethod">æ°å¢æ å</el-button> |
| | | <el-button size="small" type="primary" @click="addProductDia = true" v-if="addStandardProduct">æ°å¢é¡¹ç®</el-button> |
| | | <el-button size="small" @click="delStandardProductByIds" v-if="delStandardProduct"> |
| | | <i class="el-icon-delete" style="color: #3A7BFA;"></i> |
| | | <span style="color: #3A7BFA;">å é¤</span> |
| | | </el-button> |
| | | </el-button> --> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row class="standard_table" v-loading="tableLoad"> |
| | | <el-table class="el-table" :data="standardList" style="width: 100%;" height="220px" tooltip-effect="dark"> |
| | | <el-table class="el-table" :data="standardList" style="width: 100%;" height="220px" tooltip-effect="dark" |
| | | highlight-current-row @row-click="rowClick"> |
| | | <el-table-column prop="code" label="æ åç¼å·" show-overflow-tooltip> |
| | | <template slot-scope="scope"> |
| | | <span style="color: red;font-size: 14px;">{{scope.row['code']}}</span> |
| | |
| | | <el-table-column prop="remark" label="夿³¨" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="createUserName" label="å建人"></el-table-column> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" width="250px"></el-table-column> |
| | | <el-table-column label="æä½" width="100" align="center" v-if="delStandardMethod"> |
| | | <!-- <el-table-column label="æä½" width="100" align="center" v-if="delStandardMethod"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small" @click="delStandardMethodByFLSSM(scope.row.id)">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | </el-table> |
| | | </el-row> |
| | | <el-row class="product_table" v-loading="tableLoad"> |
| | | <el-table :data="productList" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border |
| | | @selection-change="handleSelectionChange"> |
| | | <el-row class="product_table" v-loading="tableLoad2"> |
| | | <el-table :data="productList" ref="productTable" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border |
| | | @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" @select="upProductSelect"> |
| | | <el-table-column type="selection" width="65"></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="æ£éªé¡¹" min-width="140" show-overflow-tooltip></el-table-column> |
| | | <!-- <el-table-column prop="inspectionItemClassify" label="æ£éªé¡¹ç±»å" width="120" show-overflow-tooltip></el-table-column> --> |
| | | <el-table-column prop="inspectionItemSubclass" label="æ£éªé¡¹å项" min-width="140" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="æ£éªé¡¹å项" min-width="140" |
| | | show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="sonLaboratory" label="åå®éªå®¤" width="130" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="unit" label="计éåä½" width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="price" label="åä»·" width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="manHour" label="å·¥æ¶" width="80" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="manHourGroup" label="å·¥æ¶åç»" width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="deviceGroup" label="设å¤ç»" width="120" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="section" label="åºé´" width="120" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="ask" label="è¦æ±å¼" min-width="220px"> |
| | | <el-table-column prop="ask" label="è¦æ±å¼" min-width="200px"> |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" placeholder="è¦æ±å¼" v-model="scope.row.ask" clearable |
| | | @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct" type="textarea" :autosize="{ minRows: 1, maxRows: 3}"></el-input> |
| | | @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct" type="textarea" |
| | | :autosize="{ minRows: 1, maxRows: 3}"></el-input> |
| | | <span v-else>{{scope.row.ask}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="tell" label="è¦æ±æè¿°" min-width="220px"> |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" placeholder="è¦æ±æè¿°" v-model="scope.row.tell" clearable |
| | | @change="(value)=>upStandardProductListOfTell(value,scope.row.id)" v-if="upStandardProduct" type="textarea" |
| | | :autosize="{ minRows: 1, maxRows: 3}"></el-input> |
| | | <span v-else>{{scope.row.ask}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="method" label="è¯éªæ¹æ³" width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="unit" label="计éåä½" width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="price" label="åä»·(å
)" width="90" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="manHour" label="å·¥æ¶(H)" width="90" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="manHourGroup" label="å·¥æ¶åç»" width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="deviceGroup" label="设å¤ç»" width="120" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="section" label="åºé´" width="120" show-overflow-tooltip></el-table-column> |
| | | </el-table> |
| | | </el-row> |
| | | </div> |
| | |
| | | </el-dialog> |
| | | <el-dialog title="æ°å¢é¡¹ç®" :visible.sync="addProductDia" width="70%"> |
| | | <div class="body" style="height: 60vh;" v-if="addProductDia"> |
| | | <ValueTable ref="ValueTable" :url="$api.capacityScope.selectItemParameterList" :componentData="componentData"/> |
| | | <ValueTable ref="ValueTable" :url="$api.capacityScope.selectItemParameterList" :componentData="componentData" /> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="addProductDia = false">å æ¶</el-button> |
| | |
| | | addLoad2: false, |
| | | productList: [], |
| | | tableLoad: false, |
| | | tableLoad2: false, |
| | | upStandardProduct: false, |
| | | delStandardMethod: false, |
| | | selects: [], |
| | |
| | | valueType: { |
| | | select: [] |
| | | }, |
| | | bsm:{ |
| | | bsm: { |
| | | select: [] |
| | | }, |
| | | inspectionValueType:{ |
| | | select:[] |
| | | inspectionValueType: { |
| | | select: [] |
| | | }, |
| | | deviceGroup:{select:[]} |
| | | deviceGroup: { |
| | | select: [] |
| | | } |
| | | }, |
| | | selectField: {}, |
| | | }, |
| | | expandedKeys:[] |
| | | expandedKeys: [] |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | remove(node, data) { |
| | | this.$confirm("æ¯å¦å é¤è¯¥å±çº§", "æç¤º", { |
| | | type: "error" |
| | | }).then(()=> { |
| | | }).then(() => { |
| | | this.treeLoad = true |
| | | this.selectTree = '' |
| | | this.getNodeParent(node) |
| | |
| | | this.$axios.post(this.$api.standardTree.delStandardTree, { |
| | | tree: this.selectTree |
| | | }).then(res => { |
| | | if(res.code==201)return |
| | | if (res.code == 201) return |
| | | this.$message.success('å·²å é¤') |
| | | this.selectStandardTreeList() |
| | | this.selectTree = '' |
| | |
| | | this.treeLoad = true |
| | | this.$axios.get(this.$api.standardTree.selectStandardTreeList).then(res => { |
| | | this.list = res.data |
| | | this.list.forEach(a=>{ |
| | | a.children.forEach(b=>{ |
| | | /* b.children.forEach(c=>{ |
| | | this.list.forEach(a => { |
| | | a.children.forEach(b => { |
| | | b.children.forEach(c => { |
| | | this.expandedKeys.push(c.label) |
| | | }) */ |
| | | this.expandedKeys.push(b.label) |
| | | }) |
| | | // this.expandedKeys.push(b.label) |
| | | }) |
| | | }) |
| | | this.treeLoad = false |
| | |
| | | this.$message.success('å·²ä¿å') |
| | | }) |
| | | }, |
| | | upStandardProductListOfTell(value, index) { |
| | | this.$axios.post(this.$api.standardTree.upStandardProductList, { |
| | | id: index, |
| | | tell: value |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | if (res.code == 201) { |
| | | this.$message.error('æªä¿å') |
| | | return |
| | | } |
| | | this.$message.success('å·²ä¿å') |
| | | }) |
| | | }, |
| | | delStandardMethodByFLSSM(id) { |
| | | this.$confirm('æ¯å¦å é¤å½åæ°æ®?', "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | |
| | | }) |
| | | }, |
| | | delStandardProductByIds() { |
| | | if(this.selects.length == 0){ |
| | | if (this.selects.length == 0) { |
| | | this.$message.error('æªé䏿°æ®') |
| | | return |
| | | } |
| | | this.$confirm('æ¯å¦å é¤å½åéä¸ '+this.selects.length+' æ¡æ°æ®?', "è¦å", { |
| | | this.$confirm('æ¯å¦å é¤å½åéä¸ ' + this.selects.length + ' æ¡æ°æ®?', "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | |
| | | }) |
| | | }).catch(() => {}) |
| | | }, |
| | | addStandardProductDo(){ |
| | | addStandardProductDo() { |
| | | let selects = this.$refs.ValueTable.multipleSelection |
| | | if(selects.length == 0){ |
| | | if (selects.length == 0) { |
| | | this.$message.error('æªéæ©æ°æ®') |
| | | return |
| | | } |
| | | let select = [] |
| | | selects.forEach(a=>{ |
| | | selects.forEach(a => { |
| | | select.push(a.id) |
| | | }) |
| | | this.tableLoad = true |
| | | this.$axios.post(this.$api.standardTree.addStandardProduct,{ |
| | | this.$axios.post(this.$api.standardTree.addStandardProduct, { |
| | | ids: JSON.stringify(select), |
| | | tree: this.selectTree |
| | | }).then(res=>{ |
| | | }).then(res => { |
| | | if (res.code == 201) { |
| | | return |
| | | } |
| | |
| | | this.selectsStandardMethodByFLSSM() |
| | | }) |
| | | this.addProductDia = false |
| | | } |
| | | }, |
| | | rowClick(row, column, event) { |
| | | this.tableLoad2 = true |
| | | this.$axios.post(this.$api.standardTree.selectStandardProductListByMethodId, { |
| | | id: row.id |
| | | }).then(res => { |
| | | this.productList = res.data |
| | | setTimeout(() => { |
| | | this.productList.forEach(a => { |
| | | if (a.state == 1) this.toggleSelection(a) |
| | | }) |
| | | }, 300) |
| | | this.tableLoad2 = false |
| | | }) |
| | | }, |
| | | toggleSelection(row) { |
| | | this.$refs.productTable.toggleRowSelection(row, true); |
| | | }, |
| | | tableRowClassName({ |
| | | row, |
| | | rowIndex |
| | | }) { |
| | | if (row.state === 0) { |
| | | return 'warning-row'; |
| | | } |
| | | return ''; |
| | | }, |
| | | upProductSelect(selection, row) { |
| | | row.state = row.state == 1 ? 0 : 1 |
| | | this.$axios.post(this.$api.standardTree.upStandardProductList, { |
| | | id: row.id, |
| | | state: row.state |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | if (res.code == 201) { |
| | | this.$message.error('æªä¿å') |
| | | return |
| | | } |
| | | this.$message.success('å·²ä¿å') |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | }, { |
| | | v: "å®éªå®¤çæ£æµè½åæ¡£æ¡", |
| | | i: "font icon-erjidaohang", |
| | | u: "standard_method", |
| | | u: "a7-standard-method", |
| | | g: "7.2 æ¹æ³çéæ©ãéªè¯å确认", |
| | | p: "selectStandardMethodList" |
| | | }, { |