| 8 小时以前 | gongchunyi | ![]() |
| 9 小时以前 | gongchunyi | ![]() |
| 12 小时以前 | gongchunyi | ![]() |
| 14 小时以前 | deslrey | ![]() |
| src/api/standard/standardLibrary.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/business/inspectionReview/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/business/inspectionTask/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/business/materialOrder/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/business/outsourcingFinishProduct/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/business/reportPreparation/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/standard/standardLibrary/components/BatchCopy.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/standard/standardLibrary/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/standard/standardLibrary.js
@@ -102,6 +102,15 @@ }); } // 通过检验标准查询检验项目 export function buildStandardProductListNoDrag(query) { return request({ url: "/standardTree/buildStandardProductListNoDrag", method: "get", params: query, }); } // 修改标准库中的区间设置 export function updateSection(data) { return request({ src/views/business/inspectionReview/index.vue
@@ -20,7 +20,7 @@ <el-form-item label="物料属性" prop="materialProp"> <el-select clearable size="small" v-model="entity.materialProp" style="width: 100%"> <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label" :value="dict.value""> :value="dict.value"> </el-option> </el-select> </el-form-item> src/views/business/inspectionTask/index.vue
@@ -22,7 +22,7 @@ <el-form-item label="物料属性" prop="materialProp"> <el-select clearable size="small" v-model="queryParams.materialProp" style="width: 100%"> <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label" :value="dict.value""> :value="dict.value"> </el-option> </el-select> </el-form-item> src/views/business/materialOrder/index.vue
@@ -29,7 +29,7 @@ <el-form-item label="物料属性" prop="materialProp"> <el-select clearable size="small" v-model="entity.materialProp" style="width: 100%"> <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label" :value="dict.value""> :value="dict.value"> </el-option> </el-select> </el-form-item> src/views/business/outsourcingFinishProduct/index.vue
@@ -25,15 +25,15 @@ <el-form-item label="物料属性" prop="materialProp"> <el-select clearable size="small" v-model="entity.materialProp" style="width: 100%"> <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label" :value="dict.value""> :value="dict.value"> </el-option> </el-select> </el-form-item> <el-form-item label=" 供应商名称" prop="supplierName"> <el-input v-model="entity.supplierName" clearable placeholder="请输入" size="small" @keyup.enter.native="goSearch"> </el-input> <el-input v-model="entity.supplierName" clearable placeholder="请输入" size="small" @keyup.enter.native="goSearch"> </el-input> </el-form-item> <el-form-item> <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4" @@ -315,36 +315,6 @@ { label: '样品型号', prop: 'sampleModel' }, { label: '检验人', prop: 'userName' }, { label: '下发时间', prop: 'sendTime' }, { label: '物料属性', prop: 'materialProp', formatData: (params) => { if (!params) return null for (let i = 0; i < this.dict.type.material_prop_type.length; i++) { const item = this.dict.type.material_prop_type[i] if (item.value == params) { return item.label } } return null } }, { label: '物料属性', prop: 'materialProp', formatData: (params) => { if (!params) return null for (let i = 0; i < this.dict.type.material_prop_type.length; i++) { const item = this.dict.type.material_prop_type[i] if (item.value == params) { return item.label } } return null } }, { label: '物料属性', prop: 'materialProp', @@ -666,21 +636,6 @@ }, { label: '样品型号', prop: 'sampleModel' }, { label: '检验人', prop: 'userName' }, { label: '物料属性', prop: 'materialProp', formatData: (params) => { if (!params) return null for (let i = 0; i < this.dict.type.material_prop_type.length; i++) { const item = this.dict.type.material_prop_type[i] if (item.value == params) { return item.label } } return null } }, { label: '物料属性', prop: 'materialProp', src/views/business/reportPreparation/index.vue
@@ -25,7 +25,7 @@ <el-form-item label="物料属性" prop="materialProp"> <el-select clearable size="small" v-model="entity.materialProp" style="width: 100%"> <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label" :value="dict.value""> :value="dict.value"> </el-option> </el-select> </el-form-item> src/views/standard/standardLibrary/components/BatchCopy.vue
@@ -1,243 +1,94 @@ <template> <div> <el-dialog :visible.sync="batchCopyDia" class="more-edit" title="批量编辑" width="90%" > <el-dialog :visible.sync="batchCopyDia" class="more-edit" title="批量编辑" width="90%" @closed="$emit('close')"> <el-row> <el-col :span="6" class="search_thing"> <div class="search_label">样品名称:</div> <div class="search_input"> <el-input v-model="sample" disabled size="small"> <template slot="append" ><el-button slot="append" icon="el-icon-search" @click="selectStandardTree = true" ></el-button ></template> <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectStandardTree = true"></el-button></template> </el-input> </div> </el-col> <el-col :span="6" class="search_thing"> <div class="search_label">检验标准:</div> <div class="search_input"> <el-select v-model="standardMethodListId" :loading="methodLoad" clearable placeholder="请输入" size="small" @change="changeStandardMethodListId" @focus="methodFocus" > <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id" > <el-select v-model="standardMethodListId" :loading="methodLoad" clearable placeholder="请输入" size="small" @change="changeStandardMethodListId" @focus="methodFocus"> <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> </el-option> </el-select> </div> </el-col> <el-col :span="12" style="text-align: right"> <el-button size="small" type="primary" @click="sortCopy" >排序复制</el-button > <el-button size="small" type="primary" @click="compareAlone" >单独对比</el-button > <el-button size="small" type="primary" @click="compare" >复制</el-button > <el-button size="small" type="primary" @click="sortCopy">排序复制</el-button> <el-button size="small" type="primary" @click="compareAlone">单独对比</el-button> <el-button size="small" type="primary" @click="compare">复制</el-button> </el-col> </el-row> <div class="body" style="display: flex; flex-direction: row; height: 80vh" > <div class="body" style="display: flex; flex-direction: row; height: 80vh"> <div v-loading="productTableLoading1" style="width: 50%"> <div>需要复制的检验项</div> <el-table ref="productTable1" :data="productList1" :fit="true" :row-key="(row) => row.id" border header-row-class-name="header-class" height="90%" highlight-current-row stripe style="width: 98%" tooltip-effect="dark" @select="handleSelectionChange1" @select-all="handleSelectAll1" > <el-table ref="productTable1" :data="productList1" :fit="true" :row-key="(row) => row.id" border header-row-class-name="header-class" height="90%" highlight-current-row stripe style="width: 98%" tooltip-effect="dark" @select="handleSelectionChange1" @select-all="handleSelectAll1"> <el-table-column type="selection" width="50"> </el-table-column> <el-table-column label="产品" min-width="100" prop="sample" show-overflow-tooltip ></el-table-column> <el-table-column label="型号" min-width="100" prop="model" show-overflow-tooltip ></el-table-column> <el-table-column label="检验项分类" min-width="140" prop="inspectionItemClass" show-overflow-tooltip ></el-table-column> <el-table-column column-key="inspectionItem" label="检验项" min-width="140" prop="inspectionItem" show-overflow-tooltip ></el-table-column> <el-table-column column-key="inspectionItemSubclass" label="检验项子项" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip ></el-table-column> <el-table-column label="要求值" min-width="200px" prop="ask" ></el-table-column> <el-table-column label="要求描述" min-width="220px" prop="tell" ></el-table-column> <el-table-column label="产品" min-width="100" prop="sample" show-overflow-tooltip></el-table-column> <el-table-column label="型号" min-width="100" prop="model" show-overflow-tooltip></el-table-column> <el-table-column label="检验项分类" min-width="140" prop="inspectionItemClass" show-overflow-tooltip></el-table-column> <el-table-column column-key="inspectionItem" label="检验项" min-width="140" prop="inspectionItem" show-overflow-tooltip></el-table-column> <el-table-column column-key="inspectionItemSubclass" label="检验项子项" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip></el-table-column> <el-table-column label="要求值" min-width="200px" prop="ask"></el-table-column> <el-table-column label="要求描述" min-width="220px" prop="tell"></el-table-column> </el-table> </div> <div v-loading="productTableLoading0" style="width: 50%"> <div>当前检验项</div> <el-table ref="productTable0" :data="productList0" :fit="true" :row-key="(row) => row.id" border header-row-class-name="header-class" height="90%" highlight-current-row stripe style="width: 98%" tooltip-effect="dark" @select="handleSelectionChange0" @select-all="handleSelectAll0" > <el-table ref="productTable0" :data="productList0" :fit="true" :row-key="(row) => row.id" border header-row-class-name="header-class" height="90%" highlight-current-row stripe style="width: 98%" tooltip-effect="dark" @select="handleSelectionChange0" @select-all="handleSelectAll0"> <el-table-column type="selection" width="50"> </el-table-column> <el-table-column label="产品" min-width="100" prop="sample" show-overflow-tooltip ></el-table-column> <el-table-column label="型号" min-width="100" prop="model" show-overflow-tooltip ></el-table-column> <el-table-column label="检验项分类" min-width="140" prop="inspectionItemClass" show-overflow-tooltip ></el-table-column> <el-table-column column-key="inspectionItem" label="检验项" min-width="140" prop="inspectionItem" show-overflow-tooltip ></el-table-column> <el-table-column column-key="inspectionItemSubclass" label="检验项子项" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip ></el-table-column> <el-table-column label="要求值" min-width="200px" prop="ask" ></el-table-column> <el-table-column label="要求描述" min-width="220px" prop="tell" ></el-table-column> <el-table-column label="产品" min-width="100" prop="sample" show-overflow-tooltip></el-table-column> <el-table-column label="型号" min-width="100" prop="model" show-overflow-tooltip></el-table-column> <el-table-column label="检验项分类" min-width="140" prop="inspectionItemClass" show-overflow-tooltip></el-table-column> <el-table-column column-key="inspectionItem" label="检验项" min-width="140" prop="inspectionItem" show-overflow-tooltip></el-table-column> <el-table-column column-key="inspectionItemSubclass" label="检验项子项" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip></el-table-column> <el-table-column label="要求值" min-width="200px" prop="ask"></el-table-column> <el-table-column label="要求描述" min-width="220px" prop="tell"></el-table-column> </el-table> </div> </div> </el-dialog> <el-dialog :visible.sync="selectStandardTree" title="选择样品" width="500px" > <div v-if="selectStandardTree" v-loading="selectStandardTreeLoading" class="body" style="height: 60vh; overflow-y: auto; user-select: none" > <el-dialog :visible.sync="selectStandardTree" title="选择样品" width="500px"> <div v-if="selectStandardTree" v-loading="selectStandardTreeLoading" class="body" style="height: 60vh; overflow-y: auto; user-select: none"> <el-row> <el-col :span="24"> <el-input v-model="search" clearable placeholder="输入关键字进行搜索" size="small" style="margin-bottom: 5px" suffix-icon="el-icon-search" @blur="searchFilter" @clear="searchFilter" @keyup.enter.native="searchFilter" ></el-input> <el-input v-model="search" clearable placeholder="输入关键字进行搜索" size="small" style="margin-bottom: 5px" suffix-icon="el-icon-search" @blur="searchFilter" @clear="searchFilter" @keyup.enter.native="searchFilter"></el-input> </el-col> </el-row> <el-tree ref="tree" :data="list" :default-expanded-keys="expandedKeys" :filter-node-method="filterNode" :props="{ children: 'children', label: 'label' }" highlight-current node-key="label" @node-click="handleNodeClick" @node-expand="nodeOpen" @node-collapse="nodeClose" > <el-tree ref="tree" :data="list" :default-expanded-keys="expandedKeys" :filter-node-method="filterNode" :props="{ children: 'children', label: 'label' }" highlight-current node-key="label" @node-click="handleNodeClick" @node-expand="nodeOpen" @node-collapse="nodeClose"> <div slot-scope="{ node, data }" class="custom-tree-node"> <el-row> <el-col :span="24"> <span ><i :class="`node_i ${ data.children != undefined ? data.code === '[1]' ? 'el-icon-folder-opened' : 'el-icon-folder' : 'el-icon-tickets' }`" ></i> {{ data.code }} {{ data.label }}</span > <span><i :class="`node_i ${data.children != undefined ? data.code === '[1]' ? 'el-icon-folder-opened' : 'el-icon-folder' : 'el-icon-tickets' }`"></i> {{ data.code }} {{ data.label }}</span> </el-col> </el-row> </div> @@ -250,196 +101,91 @@ </el-dialog> <el-dialog :visible.sync="compareDia" title="确认复制信息" width="80%"> <div style="width: 100%"> <el-table ref="compareList" :data="compareList" :fit="true" :row-key="(row) => row.id" border header-row-class-name="header-class" height="90%" highlight-current-row stripe style="width: 98%" tooltip-effect="dark" > <el-table-column label="产品" min-width="100" prop="sample" show-overflow-tooltip ></el-table-column> <el-table-column label="型号" min-width="100" prop="model" show-overflow-tooltip ></el-table-column> <el-table-column label="检验项分类" min-width="140" prop="inspectionItemClass" show-overflow-tooltip ></el-table-column> <el-table-column column-key="inspectionItem" label="检验项" min-width="140" prop="inspectionItem" show-overflow-tooltip ></el-table-column> <el-table-column column-key="inspectionItemSubclass" label="检验项子项" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip ></el-table-column> <el-table ref="compareList" :data="compareList" :fit="true" :row-key="(row) => row.id" border header-row-class-name="header-class" height="90%" highlight-current-row stripe style="width: 98%" tooltip-effect="dark"> <el-table-column label="产品" min-width="100" prop="sample" show-overflow-tooltip></el-table-column> <el-table-column label="型号" min-width="100" prop="model" show-overflow-tooltip></el-table-column> <el-table-column label="检验项分类" min-width="140" prop="inspectionItemClass" show-overflow-tooltip></el-table-column> <el-table-column column-key="inspectionItem" label="检验项" min-width="140" prop="inspectionItem" show-overflow-tooltip></el-table-column> <el-table-column column-key="inspectionItemSubclass" label="检验项子项" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip></el-table-column> <el-table-column label="要求值" min-width="200px" prop="ask"> <template slot-scope="scope"> <el-input v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求值" size="small" type="textarea" ></el-input> <el-input v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求值" size="small" type="textarea"></el-input> </template> </el-table-column> <el-table-column label="要求描述" min-width="220px" prop="tell"> <template slot-scope="scope"> <el-input v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求描述" size="small" type="textarea" ></el-input> <el-input v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求描述" size="small" type="textarea"></el-input> </template> </el-table-column> <el-table-column label="操作" prop="section" width="160"> <template slot-scope="scope"> <el-button type="text" @click="sectionUp(scope.row)" >区间设置</el-button > <el-button type="text" @click="sectionUp(scope.row)">区间设置</el-button> </template> </el-table-column> </el-table> <span slot="footer" class="dialog-footer"> <el-button size="small" @click="compareDia = false">取 消</el-button> <el-button :loading="handleCompareLoading" size="small" type="primary" @click="handleCompare" >确 定</el-button > <el-button :loading="handleCompareLoading" size="small" type="primary" @click="handleCompare">确 定</el-button> </span> </div> </el-dialog> <el-dialog :close-on-click-modal="false" :visible.sync="sectionUpDia" title="区间设置" width="80%" > <el-dialog :close-on-click-modal="false" :visible.sync="sectionUpDia" title="区间设置" width="80%"> <div class="body" style="padding: 5px 0"> <el-table :data="sectionList" border height="350px" style="width: 100%"> <el-table-column align="center" label="序号" type="index" width="70"> </el-table-column> <el-table-column align="center" label="区间"> <template slot-scope="scope"> <el-input v-model="scope.row.thing" clearable placeholder="区间" size="small" ></el-input> <el-input v-model="scope.row.thing" clearable placeholder="区间" size="small"></el-input> </template> </el-table-column> <el-table-column align="center" label="芯数"> <template slot-scope="scope"> <el-input v-model="scope.row.cores" clearable placeholder="芯数" size="small" ></el-input> <el-input v-model="scope.row.cores" clearable placeholder="芯数" size="small"></el-input> </template> </el-table-column> <el-table-column align="center" label="要求值"> <template slot-scope="scope"> <el-input v-model="scope.row.ask" clearable placeholder="要求值" size="small" ></el-input> <el-input v-model="scope.row.ask" clearable placeholder="要求值" size="small"></el-input> </template> </el-table-column> <el-table-column align="center" label="要求描述"> <template slot-scope="scope"> <el-input v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 2 }" clearable placeholder="要求描述" size="small" type="textarea" ></el-input> <el-input v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 2 }" clearable placeholder="要求描述" size="small" type="textarea"></el-input> </template> </el-table-column> <el-table-column align="center" label="导体材质"> <template slot-scope="scope"> <el-input v-model="scope.row.conductorMaterial" clearable placeholder="导体材质" size="small" ></el-input> <el-input v-model="scope.row.conductorMaterial" clearable placeholder="导体材质" size="small"></el-input> </template> </el-table-column> <el-table-column align="center" label="导体类型"> <template slot-scope="scope"> <el-input v-model="scope.row.conductorType" clearable placeholder="导体类型" size="small" ></el-input> <el-input v-model="scope.row.conductorType" clearable placeholder="导体类型" size="small"></el-input> </template> </el-table-column> <el-table-column align="center" label="单价" width="120"> <template slot-scope="scope"> <el-input v-model="scope.row.price" clearable placeholder="单价" size="small" ></el-input> <el-input v-model="scope.row.price" clearable placeholder="单价" size="small"></el-input> </template> </el-table-column> <el-table-column align="center" label="工时系数" width="120"> <template slot-scope="scope"> <el-input v-model="scope.row.manHour" clearable placeholder="工时系数" size="small" ></el-input> <el-input v-model="scope.row.manHour" clearable placeholder="工时系数" size="small"></el-input> </template> </el-table-column> <el-table-column align="center" label="操作" width="70"> <template slot-scope="scope"> <el-button circle icon="el-icon-minus" size="mini" type="danger" @click="sectionList.splice(scope.$index, 1)" ></el-button> <el-button circle icon="el-icon-minus" size="mini" type="danger" @click="sectionList.splice(scope.$index, 1)"></el-button> </template> </el-table-column> </el-table> @@ -447,11 +193,8 @@ <span slot="footer" class="dialog-footer"> <el-button @click="sectionUpDia = false">取 消</el-button> <el-button type="primary" @click="sectionLoadAdd">保 存</el-button> <el-button icon="el-icon-plus" type="primary" @click="sectionList.push({ thing: '', price: '', manHour: '' })" ></el-button> <el-button icon="el-icon-plus" type="primary" @click="sectionList.push({ thing: '', price: '', manHour: '' })"></el-button> </span> </el-dialog> </div> @@ -459,7 +202,7 @@ <script> import { selectStandardProductListByMethodId, buildStandardProductListNoDrag, copyStandardProductSort, copyStandardProductOne, copyStandardProductList, @@ -520,7 +263,7 @@ getList() { this.batchCopyDia = true; this.productTableLoading0 = true; selectStandardProductListByMethodId({ buildStandardProductListNoDrag({ id: this.standardId, tree: this.selectTree1, page: 1, @@ -559,6 +302,7 @@ oldStandardProductList: this.oldStandardProductList, newStandardProductList: this.newStandardProductList, }; // 调取比较左右要求值的接口 copyStandardProductList(params).then((res) => { this.compareDia = true; @@ -714,17 +458,15 @@ let data = this.selectTree.split(" - "); let data2 = ""; for (let index = data.length - 1; index >= 0; index--) { data2 += " - " + data[index]; if (data[index] && data[index] !== 'null') { data2 += " - " + data[index]; } } this.selectTree = data2.replace(" - ", ""); }, getNodeParent(val) { if (val.parent != null) { if (val.data.children === null) { this.selectTree += " - " + val.label + " - " + "null"; } else { this.selectTree += " - " + val.label; } this.selectTree += " - " + val.label; this.getNodeParent(val.parent); } }, @@ -734,7 +476,7 @@ }, getRightList() { this.productTableLoading1 = true; selectStandardProductListByMethodId({ buildStandardProductListNoDrag({ id: this.standardMethodListId, tree: this.selectTree, page: 1, @@ -771,7 +513,7 @@ } else { this.methods = res.data.standardMethodList; } } catch (e) {} } catch (e) { } }); }, activeStandardTree() { @@ -785,6 +527,9 @@ } else { this.sample = trees[3]; } this.standardMethodListId = null; this.productList1 = []; this.methods = []; this.selectStandardTree = false; }, handleSelectionChange0(val) { @@ -846,10 +591,12 @@ .search_input { width: calc(100% - 80px); } .node_i { color: orange; font-size: 18px; } .dialog-footer { display: flex; justify-content: flex-end; src/views/standard/standardLibrary/index.vue
@@ -1,182 +1,190 @@ <template> <div class="standard"> <div class="left"> <el-row> <el-col :span="20"> <el-input v-model="search" clearable placeholder="输入关键字进行搜索" size="small" style="margin-bottom: 5px" suffix-icon="el-icon-search" @blur="searchFilter" @clear="searchFilter"></el-input> </el-col> <el-col v-if="checkPermi(['standard:standardLibrary:add'])" :span="4" style="text-align: center; line-height: 30px"> <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="addDia = true"></el-button> </el-col> </el-row> <el-tree ref="tree" v-loading="treeLoad" :allow-drop="allowDrop" :data="list" :default-expanded-keys="expandedKeys" :draggable="true" :filter-node-method="filterNode" :props="{ children: 'children', label: 'label' }" highlight-current node-key="label" style=" <splitpanes class="default-theme"> <pane size="20"> <div class="left"> <el-row> <el-col :span="20"> <el-input v-model="search" clearable placeholder="输入关键字进行搜索" size="small" style="margin-bottom: 5px" suffix-icon="el-icon-search" @blur="searchFilter" @clear="searchFilter"></el-input> </el-col> <el-col v-if="checkPermi(['standard:standardLibrary:add'])" :span="4" style="text-align: center; line-height: 30px"> <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="addDia = true"></el-button> </el-col> </el-row> <el-tree ref="tree" v-loading="treeLoad" :allow-drop="allowDrop" :data="list" :default-expanded-keys="expandedKeys" :draggable="true" :filter-node-method="filterNode" :props="{ children: 'children', label: 'label' }" highlight-current node-key="label" style=" height: calc(100% - 30px); overflow-y: scroll; scrollbar-width: none; " @node-click="handleNodeClick" @node-drop="handleDrop"> <div slot-scope="{ node, data }" class="custom-tree-node" style="width: calc(100% - 15px)"> <div :title="data.label" style="display: flex;align-items: center;flex-wrap: nowrap;flex-direction: row;justify-content: space-between;"> <div style="width: calc(100% - 50px);white-space: nowrap;text-overflow: ellipsis;" :style="`overflow:${(node.data.children === null || node.data.children === undefined)?'clip':'visible'}`" > <i :class="`node_i ${data.children != undefined ? data.code === '[1]' ? 'el-icon-folder-opened' : 'el-icon-folder' : 'el-icon-tickets' }`"></i> {{data.label}} " @node-click="handleNodeClick" @node-drop="handleDrop"> <div slot-scope="{ node, data }" class="custom-tree-node" style="width: calc(100% - 15px)"> <div :title="data.label" style="display: flex;align-items: center;flex-wrap: nowrap;flex-direction: row;justify-content: space-between;"> <div style="width: calc(100% - 50px);white-space: nowrap;text-overflow: ellipsis;" :style="`overflow:${(node.data.children === null || node.data.children === undefined) ? 'clip' : 'visible'}`"> <i :class="`node_i ${data.children != undefined ? data.code === '[1]' ? 'el-icon-folder-opened' : 'el-icon-folder' : 'el-icon-tickets' }`"></i> {{ data.label }} </div> <div v-if="(node.data.children === null || node.data.children === undefined)" style="width:50px"> <el-button v-if="checkPermi(['standard:standardLibrary:delStandardTree'])" size="mini" type="text" @click.stop="editTreeName(node.data)"> <i class="el-icon-edit"></i> </el-button> <el-button style="margin-left: 0" size="mini" v-if="checkPermi(['standard:standardLibrary:delStandardTree'])" type="text" @click.stop="remove(node, data)"> <i class="el-icon-delete"></i> </el-button> </div> </div> </div> <div v-if="(node.data.children === null || node.data.children === undefined)" style="width:50px"> <el-button v-if="checkPermi(['standard:standardLibrary:delStandardTree'])" size="mini" type="text" @click.stop="editTreeName(node.data)"> <i class="el-icon-edit"></i> </el-button> <el-button style="margin-left: 0" size="mini" v-if="checkPermi(['standard:standardLibrary:delStandardTree'])" type="text" @click.stop="remove(node, data)"> <i class="el-icon-delete"></i> </el-button> </div> </div> </el-tree> </div> </el-tree> </div> <div class="right"> <el-row class="title" style="width: 100%"> <el-col :span="20" style="font-size: 14px; color: #999">{{ selectTree }}</el-col> <el-col :span="4"> <el-button v-if="isShowCopy" size="small" style="position: absolute; right: 20px; top: 1px" type="primary" @click="openCopyDia">批量复制</el-button> </el-col> </el-row> <el-row v-loading="tableLoad" class="standard_table"> <el-table ref="standard" :data="standardList" class="el-table" header-row-class-name="header-class" height="220" :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border highlight-current-row style="width: 100%; height: 220px !important" tooltip-effect="dark" @row-click="rowClick"> <el-table-column label="标准编号" prop="code" show-overflow-tooltip width="200"> <template slot-scope="scope"> <span style="color: red; font-size: 14px">{{ scope.row["code"] }}</span> </template> </el-table-column> <el-table-column label="标准名称" prop="name" show-overflow-tooltip></el-table-column> <el-table-column label="备注" prop="remark" show-overflow-tooltip></el-table-column> </el-table> </el-row> <el-row v-loading="tableLoad2" class="product_table"> <el-table id="templateParamTable" ref="productTable" v-loading="productTableLoading" :data="productList" :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :fit="true" :row-class-name="tableRowClassName" class="productTable" header-row-class-name="header-class" height="100%" row-key="id" stripe style="width: 100%" tooltip-effect="dark" @select="upProductSelect" @selection-change="handleSelectionChange" @select-all="handleAll"> <el-table-column type="selection" width="50"> </el-table-column> <el-table-column label="产品" min-width="100" prop="sample" show-overflow-tooltip></el-table-column> <el-table-column label="型号" min-width="100" prop="model" show-overflow-tooltip></el-table-column> <el-table-column label="检验项分类" min-width="140" prop="inspectionItemClass" show-overflow-tooltip></el-table-column> <el-table-column label="检验项" min-width="140" prop="inspectionItem" show-overflow-tooltip></el-table-column> <el-table-column label="检验项子项" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip></el-table-column> <el-table-column label="子实验室" prop="sonLaboratory" show-overflow-tooltip width="130"></el-table-column> <el-table-column label="要求值" min-width="200px" prop="ask"> <template slot-scope="scope"> <el-input v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求值" size="small" type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input> <span v-else>{{ scope.row.ask }}</span> </template> </el-table-column> <el-table-column label="要求描述" min-width="220px" prop="tell"> <template slot-scope="scope"> <el-input v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求描述" size="small" type="textarea" @change="(value) => upStandardProductListOfTell(value, scope.row.id) "></el-input> <span v-else>{{ scope.row.ask }}</span> </template> </el-table-column> <el-table-column label="试验方法" prop="method" width="200"> <template slot-scope="scope"> <el-select v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.methodS" clearable placeholder="试验方法" size="small" @change="(value) => upStandardProductListOfMethodS(value, scope.row.id) "> <el-option v-for="(a, i) in scope.row.method && JSON.parse(scope.row.method)" :key="i" :label="a" :value="a"></el-option> </el-select> <span v-else>{{ scope.row.methodS }}</span> </template> </el-table-column> <el-table-column label="条件" min-width="140" prop="radius" show-overflow-tooltip> <template slot-scope="scope"> <el-select v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.radius" clearable placeholder="条件" size="small" @change="(value) => upStandardProductListOfRadius(value, scope.row.id) "> <el-option v-for="(a, i) in scope.row.radiusList && JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option> </el-select> <span v-else>{{ scope.row.radius }}</span> </template> </el-table-column> <el-table-column label="计量单位" prop="unit" show-overflow-tooltip width="100"></el-table-column> <el-table-column label="单价(元)" prop="price" width="120"> <template slot-scope="scope"> <el-input v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.price" placeholder="单价(元)" size="small" @change="(value) => upStandardProductListOfPrice(value, scope.row.id) "> </el-input> <span v-else>{{ scope.row.price }}</span> </template> </el-table-column> <el-table-column label="工时系数" prop="manHour" width="120"> <template slot-scope="scope"> <el-input v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.manHour" placeholder="单价(元)" size="small" @change="(value) => upStandardProductListOfManHour(value, scope.row.id) "> </el-input> <span v-else>{{ scope.row.manHour }}</span> </template> </el-table-column> <el-table-column label="工时分组" prop="manHourGroup" show-overflow-tooltip width="100"></el-table-column> <el-table-column label="模板" prop="templateId" width="200"> <template slot-scope="scope"> <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) " filterable size="small" @change="(value) => upStandardProductListOfTemplate(value, scope.row.id) </pane> <pane size="80"> <div class="right"> <el-row class="title" style="width: 100%"> <el-col :span="20" style="font-size: 14px; color: #999">{{ displaySelectTree }}</el-col> <el-col :span="4"> <el-button v-if="isShowCopy" size="small" style="position: absolute; right: 20px; top: 1px" type="primary" @click="openCopyDia">批量复制</el-button> </el-col> </el-row> <el-row v-loading="tableLoad" class="standard_table"> <el-table ref="standard" :data="standardList" class="el-table" header-row-class-name="header-class" height="220" :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border highlight-current-row style="width: 100%; height: 220px !important" tooltip-effect="dark" @row-click="rowClick"> <el-table-column label="标准编号" prop="code" show-overflow-tooltip width="200"> <template slot-scope="scope"> <span style="color: red; font-size: 14px">{{ scope.row["code"] }}</span> </template> </el-table-column> <el-table-column label="标准名称" prop="name" show-overflow-tooltip></el-table-column> <el-table-column label="备注" prop="remark" show-overflow-tooltip></el-table-column> </el-table> </el-row> <el-row v-loading="tableLoad2" class="product_table"> <el-table id="templateParamTable" ref="productTable" v-loading="productTableLoading" :data="productList" :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :fit="true" :row-class-name="tableRowClassName" class="productTable" header-row-class-name="header-class" height="100%" row-key="id" stripe style="width: 100%" tooltip-effect="dark" @select="upProductSelect" @selection-change="handleSelectionChange" @select-all="handleAll"> <el-table-column type="selection" width="50"> </el-table-column> <el-table-column label="产品" min-width="100" prop="sample" show-overflow-tooltip></el-table-column> <el-table-column label="型号" min-width="100" prop="model" show-overflow-tooltip></el-table-column> <el-table-column label="检验项分类" min-width="140" prop="inspectionItemClass" show-overflow-tooltip></el-table-column> <el-table-column label="检验项" min-width="140" prop="inspectionItem" show-overflow-tooltip></el-table-column> <el-table-column label="检验项子项" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip></el-table-column> <el-table-column label="子实验室" prop="sonLaboratory" show-overflow-tooltip width="130"></el-table-column> <el-table-column label="要求值" min-width="200px" prop="ask"> <template slot-scope="scope"> <el-input v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求值" size="small" type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input> <span v-else>{{ scope.row.ask }}</span> </template> </el-table-column> <el-table-column label="要求描述" min-width="220px" prop="tell"> <template slot-scope="scope"> <el-input v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求描述" size="small" type="textarea" @change="(value) => upStandardProductListOfTell(value, scope.row.id) "></el-input> <span v-else>{{ scope.row.ask }}</span> </template> </el-table-column> <el-table-column label="试验方法" prop="method" width="200"> <template slot-scope="scope"> <el-select v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.methodS" clearable placeholder="试验方法" size="small" @change="(value) => upStandardProductListOfMethodS(value, scope.row.id) "> <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option> </el-select> </template> </el-table-column> <el-table-column label="区间" prop="section" show-overflow-tooltip width="120"></el-table-column> <el-table-column label="操作" prop="section" width="160"> <template slot-scope="scope"> <el-button type="text" @click="sectionUp(scope.row)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) ">区间设置</el-button> <el-button type="text" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) " @click="bindSupplierDensitySecond(scope.row)">绑定厂家</el-button> </template> </el-table-column> </el-table> <!-- <el-pagination :current-page="currentPage" :page-size="300" :total="total" layout="total" <el-option v-for="(a, i) in scope.row.method && JSON.parse(scope.row.method)" :key="i" :label="a" :value="a"></el-option> </el-select> <span v-else>{{ scope.row.methodS }}</span> </template> </el-table-column> <el-table-column label="条件" min-width="140" prop="radius" show-overflow-tooltip> <template slot-scope="scope"> <el-select v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.radius" clearable placeholder="条件" size="small" @change="(value) => upStandardProductListOfRadius(value, scope.row.id) "> <el-option v-for="(a, i) in scope.row.radiusList && JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option> </el-select> <span v-else>{{ scope.row.radius }}</span> </template> </el-table-column> <el-table-column label="计量单位" prop="unit" show-overflow-tooltip width="100"></el-table-column> <el-table-column label="单价(元)" prop="price" width="120"> <template slot-scope="scope"> <el-input v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.price" placeholder="单价(元)" size="small" @change="(value) => upStandardProductListOfPrice(value, scope.row.id) "> </el-input> <span v-else>{{ scope.row.price }}</span> </template> </el-table-column> <el-table-column label="工时系数" prop="manHour" width="120"> <template slot-scope="scope"> <el-input v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.manHour" placeholder="单价(元)" size="small" @change="(value) => upStandardProductListOfManHour(value, scope.row.id) "> </el-input> <span v-else>{{ scope.row.manHour }}</span> </template> </el-table-column> <el-table-column label="工时分组" prop="manHourGroup" show-overflow-tooltip width="100"></el-table-column> <el-table-column label="模板" prop="templateId" width="200"> <template slot-scope="scope"> <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) " filterable size="small" @change="(value) => upStandardProductListOfTemplate(value, scope.row.id) "> <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option> </el-select> </template> </el-table-column> <el-table-column label="区间" prop="section" show-overflow-tooltip width="120"></el-table-column> <el-table-column label="操作" prop="section" width="160"> <template slot-scope="scope"> <el-button type="text" @click="sectionUp(scope.row)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) ">区间设置</el-button> <el-button type="text" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) " @click="bindSupplierDensitySecond(scope.row)">绑定厂家</el-button> </template> </el-table-column> </el-table> <!-- <el-pagination :current-page="currentPage" :page-size="300" :total="total" layout="total" style="position: absolute; right: 16px; bottom: 1px" @current-change="handleCurrentChange"> </el-pagination> --> <p style="text-align: right;margin-right: 20px;color: #333;">共{{ total }}条</p> </el-row> </div> <p style="text-align: right;margin-right: 20px;color: #333;">共{{ total }}条</p> </el-row> </div> </pane> </splitpanes> <el-dialog :visible.sync="addDia" title="分类添加" width="400px"> <div class="body"> @@ -215,7 +223,7 @@ <el-dialog :close-on-click-modal="false" :visible.sync="sectionUpDia" title="区间设置" width="80%"> <div class="body" style="padding: 5px 0"> <el-table :data="sectionList" border height="350px" style="width: 100%" :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"> :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"> <el-table-column align="center" label="序号" type="index" width="70"> </el-table-column> <el-table-column align="center" label="区间"> @@ -278,7 +286,7 @@ @closeBindPartDialog="closeBindSupplierDensityDialog"> </bindSupplierDensityDialogAsk> <BatchCopy v-if="batchCopyDia" ref="BatchCopy" :selectTree1="selectTree" :standardId="standardId" @refreshList="refreshList"></BatchCopy> @refreshList="refreshList" @close="batchCopyDia = false"></BatchCopy> </div> </template> @@ -306,12 +314,17 @@ } from "@/api/standard/standardLibrary"; import bindSupplierDensityDialogAsk from "./components/bindSupplierDensityDialogAsk.vue"; import BatchCopy from "./components/BatchCopy.vue"; import { Splitpanes, Pane } from "splitpanes"; import "splitpanes/dist/splitpanes.css"; export default { name: 'StandardLibrary', components: { BatchCopy, bindSupplierDensityDialogAsk, draggable, Splitpanes, Pane, }, dicts: ["sys_factory", "sys_sub_lab", "sys_samp_type"], data() { @@ -385,6 +398,15 @@ VUE_APP_BASE_API: process.env.VUE_APP_BASE_API, moreSelects: [], }; }, computed: { displaySelectTree() { if (!this.selectTree) return ""; return this.selectTree .split(" - ") .filter((item) => item !== "null") .join(" - "); }, }, mounted() { this.selectEnumByCategoryForFactory(); @@ -488,7 +510,7 @@ } }, // 调用tree过滤方法 中文英过滤 filterNode (value, data, node) { filterNode(value, data, node) { if (!value) { //如果数据为空,则返回true,显示所有的数据项 return true } @@ -497,7 +519,7 @@ return this.chooseNode(val, data, node) // 调用过滤二层方法 }, // 过滤父节点 / 子节点 (如果输入的参数是父节点且能匹配,则返回该节点以及其下的所有子节点;如果参数是子节点,则返回该节点的父节点。name是中文字符,enName是英文字符. chooseNode (value, data, node) { chooseNode(value, data, node) { if (data.label.indexOf(value) !== -1) { return true } @@ -1205,8 +1227,8 @@ } .left { width: 330px; height: calc(100% - 40px - 10px); width: 100%; height: 100%; background-color: white; padding: 15px; } @@ -1242,9 +1264,8 @@ } .right { margin-left: 5px; width: calc(100% - 350px); height: calc(100% - 40px); width: 100%; height: 100%; } .right .title {