From 23052b941c61d99716d6ac1e693ab2bfce66b878 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期五, 14 六月 2024 13:34:12 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/center-lims-before into master
---
src/components/view/b2-standard.vue | 86 +++++++++++
src/components/do/b1-ins-order/add.vue | 4
src/components/do/b1-ins-order/cable-config.vue | 255 +++++++++++++++++++++++++++++------
src/components/view/a5-capacity-scope.vue | 11
src/main.js | 25 ++-
src/assets/api/controller.js | 1
6 files changed, 315 insertions(+), 67 deletions(-)
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 2f5338c..cf0ed4b 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -209,6 +209,7 @@
upStandardProducts: "/standardTree/upStandardProducts", //鑾峰彇浜у搧鏋舵瀯
selectStandardProductEnumByMethodId: "/standardTree/selectStandardProductEnumByMethodId", //鎵归噺缂栬緫鏌ヨ鎵�鏈夋楠岄」鐩拰妫�楠屽瓙椤规灇涓�
getStandTreeBySampleType: "/standardTree/getStandTreeBySampleType", //浠呰幏鍙栧厜绾ょ殑鍨嬪彿
+ inExcelOfTree: "/standardTree/inExcelOfTree", //瀵煎叆鏍囧噯搴�
}
const standardMethod = {
diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue
index e0749b0..ffa7fc9 100644
--- a/src/components/do/b1-ins-order/add.vue
+++ b/src/components/do/b1-ins-order/add.vue
@@ -997,7 +997,7 @@
return a
})),
pairing: JSON.stringify(this.bsm2Val2)
- })
+ })
}).then(res => {
this.saveLoad = false
if (res.code == 201) return
@@ -1159,6 +1159,8 @@
this.sample.insProduct = []
this.sample.id = this.count
this.sample.childSampleList = []
+ this.sample.insulating = null
+ this.sample.sheath = null
this.sampleList.push(this.HaveJson(this.sample))
this.count++
}
diff --git a/src/components/do/b1-ins-order/cable-config.vue b/src/components/do/b1-ins-order/cable-config.vue
index 652cb96..897a0b6 100644
--- a/src/components/do/b1-ins-order/cable-config.vue
+++ b/src/components/do/b1-ins-order/cable-config.vue
@@ -7,47 +7,67 @@
<el-button size="medium" @click="outConfig">
<span style="color: #3A7BFA;">杩� 鍥�</span>
</el-button>
+ <el-button size="medium" type="primary" @click="save">淇� 瀛�</el-button>
</el-col>
</el-row>
</div>
<div class="search">
- <el-radio-group v-model="currentTab" size="small" style="margin-left: 20px;">
+ <el-radio-group v-model="currentTab" size="small" style="margin-left: 20px;" @input="changeTab">
<el-radio-button label="缁濈紭">缁� 缂�</el-radio-button>
<el-radio-button label="鎶ゅ">鎶� 濂�</el-radio-button>
</el-radio-group>
<div class="search_thing" v-if="currentTab=='缁濈紭'">
<div class="search_label">鑺暟锛�</div>
<el-input size="small" placeholder="璇疯緭鍏�" clearable
- v-model="vaule0"></el-input>
+ v-model="insulating.num"></el-input>
</div>
- <el-button size="small" type="primary"@click="openAdd" style="margin-left: 20px;margin-right: 20px;" v-if="currentTab=='缁濈紭'">
- 纭� 瀹�</el-button>
- <div class="search_thing">
+ <div class="search_thing" v-if="currentTab=='缁濈紭'">
<div class="search_label">妫�楠屾爣鍑嗭細</div>
- <el-select v-model="vaule0" placeholder="璇烽�夋嫨妫�楠屾爣鍑�" size="small"
- clearable>
- <el-option v-for="item in standardList" :key="item.value" :label="item.label" :value="item.value">
+ <el-select v-model="insulating.standardMethodListId" placeholder="璇烽�夋嫨妫�楠屾爣鍑�" size="small"
+ @change="(value)=>methodChange(value)">
+ <el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">
</el-option>
</el-select>
</div>
- <div class="search_thing" style="padding-left: 30px;">
- <el-button size="small" type="primary"@click="openAdd">淇� 瀛�</el-button>
+ <div class="search_thing" v-if="currentTab=='鎶ゅ'">
+ <div class="search_label">妫�楠屾爣鍑嗭細</div>
+ <el-select v-model="sheath.standardMethodListId" placeholder="璇烽�夋嫨妫�楠屾爣鍑�" size="small"
+ @change="(value)=>methodChange(value)">
+ <el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">
+ </el-option>
+ </el-select>
</div>
</div>
<div class="table">
- <ValueTable ref="ValueTable"
- :url="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours"
- :componentData="componentData" :key="upIndex" />
+ <el-table class="el-table" ref="productTable" :data="productList" height="100%" tooltip-effect="dark" border
+ @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect"
+ :row-class-name="tableRowClassName" @select-all="handleAll">
+ <el-table-column type="selection" width="65" :selectable="selectable"></el-table-column>
+ <el-table-column prop="inspectionItem" 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="瀛愬疄楠屽" min-width="130" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="120" 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="section" label="鍖洪棿" min-width="120" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px">
+ <template slot-scope="scope">
+ <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable type="textarea"
+ :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)"
+ v-if="active==1&&isAskOnlyRead"></el-input>
+ <span v-else>{{ scope.row.ask }}</span>
+ </template>
+ </el-table-column>
+ </el-table>
</div>
</div>
</template>
<script>
-import ValueTable from '../../tool/value-table.vue'
+import { Tree } from 'element-ui'
export default {
- components: {
- ValueTable
- },
props: {
active: {
type: Number,
@@ -59,42 +79,167 @@
standardList:[],
vaule0:'',
currentTab:'缁濈紭',
- componentData: {
- entity: {
- number: null,
- department: null,
- laboratory: null,
- orderBy: {
- field: 'id',
- order: 'desc'
- }
- },
- isIndex: true,
- showSelect: true,
- select: true,
- do: [],
- tagField: {},
- linkEvent: {
- },
- selectField: {
- laboratory: {
- select: []
- },
- unit: {
- select: []
- },
-
- },
- requiredAdd: [],
- requiredUp: []
- },
upIndex:0,
+ productList: [],
+ productIds: [],
+ sample: [],
+ tree: '',
+ standards: [],
+ insulating: {
+ standardMethodListId: null,
+ insProduct: [],
+ num: 1
+ },
+ sheath: {
+ standardMethodListId: null,
+ insProduct: []
+ },
+ isAskOnlyRead: false
}
+ },
+ mounted() {
+ this.$parent.sampleIds.forEach(a => {
+ for (var i = 0; i < this.$parent.sampleList.length; i++) {
+ if (this.$parent.sampleList[i].id == a) {
+ this.sample.push(this.$parent.sampleList[i])
+ if(this.$parent.sampleList[i].insulating !== undefined && this.$parent.sampleList[i].insulating !== null){
+ this.insulating = this.$parent.sampleList[i].insulating
+ }
+ if(this.$parent.sampleList[i].sheath !== undefined && this.$parent.sampleList[i].sheath !== null){
+ this.sheath = this.$parent.sampleList[i].sheath
+ }
+ break
+ }
+ }
+ })
+ let obj = this.$parent.addObj
+ this.tree = obj.factory + ' - ' + obj.laboratory + ' - ' + obj.sampleType + ' - ' + obj.sample
+ this.selectsStandardMethodByFLSSM2()
+ this.productList = this.insulating.insProduct
+ setTimeout(() => {
+ this.productList.forEach(a => {
+ if (a.state == 1) this.toggleSelection(a)
+ })
+ }, 200)
},
methods: {
outConfig() {
this.$parent.cableConfigShow = false
},
+ selectProduct(val) {
+ this.productIds = []
+ val.forEach(a => {
+ this.productIds.push(a.id)
+ })
+ },
+ upProductSelect(selection, row) {
+ row.state = row.state == 1 ? 0 : 1
+ },
+ handleAll(e) {
+ if (e.length > 0) {
+ this.productList.map(m => {
+ m.state = 1
+ return m
+ })
+ } else {
+ this.productList.map(m => {
+ m.state = 0
+ return m
+ })
+ }
+ this.$nextTick(() => {
+ this.$refs.productTable.doLayout()
+ })
+ },
+ tableRowClassName({
+ row,
+ rowIndex
+ }) {
+ if (row.state === 0) {
+ return 'warning-row';
+ }
+ return '';
+ },
+ selectable() {
+ if (this.active > 1) {
+ return false
+ } else {
+ return true
+ }
+ },
+ selectsStandardMethodByFLSSM2() {
+ this.standards = []
+ this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
+ tree: this.tree
+ }).then(res => {
+ this.standards = res.data.standardMethodList
+ })
+ },
+ methodChange(val) {
+ if (val === null || val === '') return
+ let standard = this.standards.find(a => a.id === val)
+ if(standard!=null && standard.code==='濮旀墭瑕佹眰'){
+ this.isAskOnlyRead = true
+ }else{
+ this.isAskOnlyRead = false
+ }
+ this.$axios.post(this.$api.standardTree.selectStandardProductList, {
+ model: this.$parent.addObj.model,
+ standardMethodListId: val,
+ factory: this.tree + ' - '
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ res.data.forEach(a => {
+ a.state = 0
+ })
+ if(this.currentTab==='缁濈紭'){
+ this.insulating.insProduct = res.data
+ }else if(this.currentTab==='鎶ゅ'){
+ this.sheath.insProduct = res.data
+ }
+ this.productList = res.data
+ setTimeout(() => {
+ this.productList.forEach(a => {
+ if (a.state == 1) this.toggleSelection(a)
+ })
+ }, 200)
+ })
+ },
+ toggleSelection(row) {
+ this.$refs.productTable.toggleRowSelection(row, true);
+ },
+ save(){
+ if(this.insulating.insProduct.length === 0 && this.sheath.insProduct.length === 0){
+ this.$message.error('缂哄皯閰嶇疆鏃犳硶淇濆瓨')
+ return
+ }
+ if(this.insulating.insProduct.length !== 0){
+ if(this.insulating.num === null || this.insulating.num === '' || this.insulating.num <= 0){
+ this.$message.error('缂哄皯鑺暟鏃犳硶淇濆瓨')
+ return
+ }
+ }
+ this.sample.forEach(a=>{
+ a.insulating = this.insulating
+ a.sheath = this.sheath
+ })
+ this.$message.success('宸蹭繚瀛�')
+ },
+ changeTab(val){
+ if(val==='缁濈紭'){
+ this.productList = this.insulating.insProduct
+ }else if(val==='鎶ゅ'){
+ this.productList = this.sheath.insProduct
+ }
+ setTimeout(() => {
+ this.productList.forEach(a => {
+ if (a.state == 1) this.toggleSelection(a)
+ })
+ }, 200)
+ }
}
}
</script>
@@ -146,3 +291,21 @@
padding: 20px;
}
</style>
+<style>
+ .ins_order_config .has-gutter .el-table__cell .cell {
+ line-height: 30px;
+ background-color: #fafafa;
+ }
+
+ .ins_order_config .has-gutter .el-table__cell {
+ background-color: #fafafa !important;
+ }
+
+ .ins_order_config .el-table__row .cell {
+ font-size: 12px;
+ }
+
+ .ins_order_config .el-table .warning-row .cell {
+ color: #bababa;
+ }
+</style>
diff --git a/src/components/view/a5-capacity-scope.vue b/src/components/view/a5-capacity-scope.vue
index 48f9b5e..0d6894c 100644
--- a/src/components/view/a5-capacity-scope.vue
+++ b/src/components/view/a5-capacity-scope.vue
@@ -516,7 +516,7 @@
if (power[i].menuMethod == 'selectTestObjectList') {
select += 2
}
- if (this.radio === '0') {
+ if (radio === '0') {
if (power[i].menuMethod == 'upItemParameter') {
up = true
}
@@ -526,7 +526,9 @@
if (power[i].menuMethod == 'addItemParameter') {
add = true
}
-
+ if (power[i].menuMethod == 'importData') {
+ inPower = true
+ }
} else {
if (power[i].menuMethod == 'upTestObject') {
up = true
@@ -540,12 +542,9 @@
if (power[i].menuMethod == 'selectProductListByObjectId') {
product = true
}
- if (power[i].menuMethod == 'importData') {
- inPower = true
- }
}
}
- if (this.radio === '0') {
+ if (radio === '0') {
if (!del) {
this.itemParameterData.do.splice(1, 1)
}
diff --git a/src/components/view/b2-standard.vue b/src/components/view/b2-standard.vue
index 51facba..5e6be92 100644
--- a/src/components/view/b2-standard.vue
+++ b/src/components/view/b2-standard.vue
@@ -147,9 +147,28 @@
color: #bababa;
}
- .el-table-filter__list {
+ .standard .el-table-filter__list {
max-height: 400px;
overflow-y: auto;
+ }
+
+ .standard .el-upload {
+ width: 100%;
+ }
+
+ .standard .el-upload-dragger {
+ width: 100%;
+ }
+
+ .standard .handleBtn.is-disabled .el-upload:focus {
+ color: #C0C4CC !important;
+ }
+
+ .standard .avatar-uploader .el-upload {
+ height: 80px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
}
</style>
@@ -189,7 +208,8 @@
<div class="right">
<el-row class="title" style="width: 100%;">
<el-col :span="20" style="font-size: 14px;color: #999;">{{selectTree}}</el-col>
- <el-button size="small" type="primary" @click="handleMore" style="position: absolute;right: 0px;top: 1px;"
+ <el-button size="small" type="primary" style="position: absolute;right: 100px;top: 1px;" @click="uploadDia = true" v-if="inExcelOfTreePower">瀵煎叆</el-button>
+ <el-button size="small" type="primary" @click="handleMore" style="position: absolute;right: 5px;top: 1px;"
v-if="upStandardProduct">鎵归噺缂栬緫</el-button>
</el-row>
<el-row class="standard_table" v-loading="tableLoad">
@@ -475,6 +495,20 @@
<el-button type="primary" @click="sectionList.push({thing: ''})" icon="el-icon-plus"></el-button>
</span>
</el-dialog>
+ <el-dialog title="鏁版嵁瀵煎叆" :visible.sync="uploadDia" width="500px">
+ <div style="margin: 0 auto;">
+ <el-upload ref="upload" drag :action="javaApi + $api.standardTree.inExcelOfTree" :headers="token" :file-list="fileList" name="file"
+ :auto-upload="false" accept=".xlsx" :limit="1" :on-change="beforeUpload" :on-success="onSuccess"
+ :on-error="onError">
+ <i class="el-icon-upload"></i>
+ <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+ </el-upload>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="uploadDia = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitUpload()" :loading="uploading">涓� 浼�</el-button>
+ </span>
+ </el-dialog>
</div>
</template>
@@ -583,7 +617,12 @@
pages: 1,
inspectionItem: null,
inspectionItemSubclass: null,
- sonLaboratory: null
+ sonLaboratory: null,
+ uploadDia: false,
+ token: null,
+ fileList: [],
+ inExcelOfTreePower: false,
+ uploading: false
}
},
watch: {
@@ -620,6 +659,9 @@
this.selectEnumByCategoryForSonLaboratory()
this.getStandardTemplate()
this.selectStandardMethods()
+ this.token = {
+ 'token': sessionStorage.getItem('token')
+ }
},
methods: {
filterNode(value, data) {
@@ -885,6 +927,7 @@
let delStandardProduct = false
let addStandardProduct = false
let delStandardTree = false
+ let inExcelOfTreePower = false
for (var i = 0; i < power.length; i++) {
if (power[i].menuMethod == 'addStandardTree') {
add = true
@@ -907,6 +950,9 @@
if (power[i].menuMethod == 'delStandardTree') {
delStandardTree = true
}
+ if (power[i].menuMethod == 'inExcelOfTree') {
+ inExcelOfTreePower = true
+ }
}
this.addPower = add
this.addStandardMethod = addStandardMethod
@@ -915,6 +961,7 @@
this.delStandardProduct = delStandardProduct
this.addStandardProduct = addStandardProduct
this.delStandardTree = delStandardTree
+ this.inExcelOfTreePower = inExcelOfTreePower
},
upStandardProductList(value, index) {
this.$axios.post(this.$api.standardTree.upStandardProductList, {
@@ -1406,7 +1453,38 @@
}
})
})
- }
+ },
+ beforeUpload(file, fileList) {
+ if (file.raw.type != 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
+ this.$message.error('涓婁紶鏂囦欢鏍煎紡涓嶆纭�');
+ this.$refs.upload.clearFiles()
+ return false;
+ }
+ },
+ submitUpload() {
+ if (this.$refs.upload.uploadFiles.length == 0) {
+ this.$message.error('鏈�夋嫨鏂囦欢')
+ return
+ }
+ this.uploading = true
+ this.$refs.upload.submit();
+ },
+ onSuccess(response, file, fileList) {
+ this.$refs.upload.clearFiles()
+ this.uploadDia = false
+ this.uploading = false
+ if (response.code == 201) {
+ this.$message.error(response.message)
+ return
+ }
+ this.$message.success('涓婁紶鎴愬姛')
+ this.refresh()
+ },
+ onError(err, file, fileList) {
+ this.$message.error('涓婁紶澶辫触')
+ this.$refs.upload.clearFiles()
+ this.uploading = false
+ },
}
}
</script>
diff --git a/src/main.js b/src/main.js
index c48e4e1..4293cee 100644
--- a/src/main.js
+++ b/src/main.js
@@ -12,18 +12,23 @@
import swal from 'sweetalert'
// 椤圭洰鍒囨崲
-Vue.prototype.PROJECT = '妫�娴嬩腑蹇�' //椤圭洰鍚嶇О锛氭娴嬩腑蹇冦�佽澶囩數缂�
+Vue.prototype.PROJECT = '妫�娴嬩腑蹇�'
+// Vue.prototype.PROJECT = '瑁呭鐢电紗'
//鏈湴
Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80";
-// const javaApi = 'http://192.168.144.200:8001';//鏉�
-// const javaApi = 'http://192.168.11.249:8001';//寮�
-// const javaApi = 'http://192.168.11.2:8001';//鏌�
-// const javaApi = 'http://127.0.0.1:8001';//鏅�
-const javaApi = 'http://114.132.189.42:1234';//娴嬭瘯鏈�
-//鑳滀簯鏈嶅姟鍣�
-// Vue.prototype.LOCATIONVUE = "http://syxt.shxiao2.cn";
-// const javaApi = 'http://122.114.52.69:8001';
-// const javaApi = 'http://10.1.200.86:8001';//姝e紡鏈�
+const javaApi = 'http://127.0.0.1:8001';
+
+//浜�
+// Vue.prototype.LOCATIONVUE = "http://114.132.189.42:8080";
+// const javaApi = 'http://114.132.189.42:1234';
+
+//妫�娴嬩腑蹇冩寮忓簱
+// Vue.prototype.LOCATIONVUE = "http://10.1.200.86:8080";
+// const javaApi = 'http://10.1.200.86:8001';
+
+//瑁呭鐢电紗娴嬭瘯搴�
+// Vue.prototype.LOCATIONVUE = "http://10.16.173.59";
+// const javaApi = 'http://10.16.173.59:8001';
Vue.prototype.HaveJson = (val) => {
return JSON.parse(JSON.stringify(val))
--
Gitblit v1.9.3