From 2bd7979e7b7db44df83847f800695ee2188146a9 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 01 九月 2023 09:11:54 +0800
Subject: [PATCH] modified: .env.development modified: src/views/experiment/inspectionApplication/index.vue modified: src/views/experiment/reportAuditing/index.vue modified: src/views/inspectionManagement/commissionInspection/index.vue
---
src/views/standardLibrary/index.vue | 1124 +++++++++++++++++++++++++++++++++-------------------------
1 files changed, 631 insertions(+), 493 deletions(-)
diff --git a/src/views/standardLibrary/index.vue b/src/views/standardLibrary/index.vue
index 3a642f1..8adee1f 100644
--- a/src/views/standardLibrary/index.vue
+++ b/src/views/standardLibrary/index.vue
@@ -1,503 +1,641 @@
<template>
- <div class="standard-library-main">
- <div class="content-main">
- <div class="library-bom" style="width: 300px;">
- <el-input
- v-model="filterText"
- placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
- />
- <el-button type="text">鍏ㄩ儴</el-button>
- <el-tree
- ref="tree"
- style="width: 100%;"
- class="filter-tree"
- :data="standardTree"
- :props="defaultProps"
- node-key="id"
- highlight-current
- default-expand-all
- :filter-node-method="filterNode"
- :render-content="renderContent"
- @node-click="nodeClick"
- />
- </div>
- <div class="library-table" style="width: 80%;">
- <div class="table-header">
- <div class="search-bar">
- <el-form ref="form" :inline="true" :model="searchData">
- <el-form-item>
- <el-input
- v-model="searchData.keyword"
- placeholder="璇疯緭鍏ヤ汉鍛樺悕绉�/鍘熸潗鏂欏悕绉�"
- >
- <i slot="prefix" class="el-input__icon el-icon-search" />
- </el-input>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="filteredTableData">鏌ヨ</el-button>
- <el-button type="primary" plain @click="resetBtn">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
- </div>
- <div class="serve-btn">
- <el-button type="primary" icon="el-icon-plus" @click="addTreeFormVisible = true">鏂板</el-button>
- </div>
- </div>
- <div class="table-box">
- <el-table
- ref="tableData"
- row-key="id"
- max-height="680"
- :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
- :cell-style="{textAlign: 'left'}"
- :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'left'}"
- :data="tableData"
- style="width: 100%"
- >
- <el-table-column
- type="index"
- label="搴忓彿"
- width="100px"
- >
- <template v-if="scope.row.index+1" slot-scope="scope">
- {{ scope.row.index+1 }}
- </template>
- </el-table-column>
- <el-table-column
- prop="father"
- label="鍚嶇О"
- width="320px"
- >
- <template slot-scope="scope">
- <el-tag size="mini" :type="scope.row.father? '':'success'" :style="{borderRadius: '40%',marginRight: '12px'}">{{ scope.row.father? '01':'02' }}</el-tag> {{ scope.row.father || scope.row.name }}
- </template>
- </el-table-column>
- <el-table-column
- prop="unit"
- label="鍗曚綅"
- width="300px"
- />
- <el-table-column
- prop="required"
- label="鏍囧噯"
- width="300px"
- />
- <el-table-column
- prop="internal"
- label="鍐呮帶鍒�"
- width="300px"
- />
- </el-table>
- <!-- 寮瑰嚭琛ㄥ崟椤� -->
- <div>
- <!-- -->
- </div>
- <div>
- <!-- 鍒嗛〉鍣� -->
- <el-pagination
- :current-page="pageParams.pageNo"
- :page-sizes="[10, 15, 20, 25]"
- :page-size="pageParams.pageSize"
- layout="total, sizes, prev, pager, next, jumper"
- :total="pageParams.total"
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- />
- </div>
- </div>
- </div>
- </div>
- <el-dialog class="addTree" title="娣诲姞鎸囨爣" width="28%" :visible.sync="addTreeFormVisible" @close="closeAddTreeForm">
- <el-form v-model="addTreeForm" label-position="top">
- <el-form-item label="涓婄骇">
- <el-cascader
- v-model="addTreeForm.addTypeArr"
- :options="formTypeOptions"
- :props="{ ...defaultProps,checkStrictly: true }"
- clearable
- @change="changeCascader"
- />
- </el-form-item>
- <el-form-item v-show="addTreeForm.addTypeArr.length<2" label="鐗╂枡鍚嶇О">
- <el-input v-model="addTreeForm.materialName" />
- </el-form-item>
- <el-form-item v-show="addTreeForm.addTypeArr.length<3" label="鎵ц鏍囧噯">
- <el-input v-model="addTreeForm.standardName" />
- </el-form-item>
- <el-form-item v-show="addTreeForm.addTypeArr.length<4" label="瑙勬牸鍨嬪彿">
- <el-input v-model="addTreeForm.specificationsName" />
- </el-form-item>
- </el-form>
- <div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="subAddTreeForm">纭� 瀹�</el-button>
- <el-button @click="addTreeFormVisible = false">鍙� 娑�</el-button>
- </div>
- </el-dialog>
- </div>
+ <div class="standard-library-main">
+ <div class="content-main">
+ <div class="library-bom" style="width: 300px">
+ <el-input v-model="filterText" placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"></el-input>
+ <el-button type="text">鍏ㄩ儴</el-button>
+ <el-tree ref="tree" style="width: 100%" class="filter-tree" :data="standardTree" :props="defaultProps"
+ node-key="id" highlight-current default-expand-all :filter-node-method="filterNode"
+ :render-content="renderContent" @node-click="nodeClick" />
+ </div>
+ <div class="library-table" style="width: 80%">
+ <div class="table-header">
+ <div class="serve-btn">
+ <span class="tipMsg">{{ msg !== "" ? msg : "" }}</span>
+ <el-select v-model="versionValue" @change="changeSelect" placeholder="璇烽�夋嫨鐗堟湰鍙�">
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ <el-button type="primary" @click="addVersionFun">鏂板鐗堟湰鍙�</el-button>
+ <el-button type="primary" icon="el-icon-plus" @click="addTreeFormVisible = true">鏂板</el-button>
+ <el-button class="top_div_button" icon="el-icon-delete-solid" style="color: #00a5ff"
+ @click="deleteListClick">鍒犻櫎</el-button>
+ </div>
+ </div>
+ <div class="table-box">
+ <el-table :data="tableData" style="width: 100%; margin-bottom: 20px" row-key="id" border
+ height="calc(100vh - 250px)" default-expand-all ref="multipleTable" @select="selectTr"
+ @select-all="selectAll" @selection-change="handleSelectionChange"
+ :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
+ <el-table-column type="selection" label="搴忓彿"> </el-table-column>
+ <el-table-column type="index" width="50px" label="搴忓彿"></el-table-column>
+ <el-table-column label="椤圭洰鍚嶇О" sortable>
+ <template scope="scope">
+ <el-tag>
+ <div class="firstDiv" :style="`color: ${
+ scope.row.code == '[1]' ? '#16a7ff' : '#58c173'
+ }`">
+ {{ scope.row.code == "[1]" ? "01" : "02" }}
+ </div>
+ <span style="color: black">{{ scope.row.name }}</span>
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column prop="unit" label="鍗曚綅" sortable></el-table-column>
+ <el-table-column label="鏍囧噯鍊�" sortable>
+ <template scope="scope">
+ <el-input v-if="scope.row.edit === true || scope.row.code === '[2]'" @blur="requiredOnfocus(scope)"
+ v-model="scope.row.required" placeholder="璇疯緭鍏ユ爣鍑嗗��"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="internal" label="鍐呮帶鍊�" sortable>
+ <template scope="scope">
+ <el-input v-if="scope.row.edit === true || scope.row.code === '[2]'" @blur="requiredOnfocus(scope)"
+ v-model="scope.row.internal" placeholder="璇疯緭鍏ュ唴鎺у��"></el-input>
+ </template>
+ </el-table-column>
+ </el-table>
+ <!-- 寮瑰嚭琛ㄥ崟椤� -->
+ <div>
+ <!-- -->
+ </div>
+ </div>
+ </div>
+ </div>
+ <el-dialog class="addTree" title="娣诲姞鏍囧噯鎸囨爣" width="28%" :visible.sync="addTreeFormVisible">
+ <el-form v-model="addTreeForm" label-position="top">
+ <el-form-item label="鏍囧噯绫诲瀷">
+ <el-cascader v-model="addTreeForm.addTypeArr" :options="formTypeOptions"
+ :props="{ ...defaultProps, checkStrictly: true }" clearable @change="changeCascader"/>
+ </el-form-item>
+ <el-form-item v-show="addTreeForm.addTypeArr.length < 2" label="鐗╂枡鍚嶇О">
+ <el-input v-model="addTreeForm.materialName" />
+ </el-form-item>
+ <el-form-item v-show="addTreeForm.addTypeArr.length < 3" label="鎵ц鏍囧噯">
+ <el-input v-model="addTreeForm.standardName" />
+ </el-form-item>
+ <el-form-item v-show="addTreeForm.addTypeArr.length < 4" label="瑙勬牸鍨嬪彿">
+ <el-input v-model="addTreeForm.specificationsName" />
+ </el-form-item>
+ </el-form>
+ <div slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="subAddTreeForm">纭� 瀹�</el-button>
+ <el-button @click="addTreeFormVisible = false">鍙� 娑�</el-button>
+ </div>
+ </el-dialog>
+ </div>
</template>
<script>
-import { getMaterialList, getProductList, getProductSonList,
- addMaterial, addStandards, addSpecifications
-} from '@/api/standardLibrary'
-export default {
- data() {
- return {
- addTreeFormVisible: false,
- filterText: '',
- // 鏍囧噯搴揵om鏍�
- standardTree: [],
- // bom鐨�,榛樿閰嶇疆鍊�
- defaultProps: {
- children: 'children',
- label: 'name',
- value: 'id'
- },
- // 鏌ヨ鏉′欢
- searchData: {
- keyword: ''
- },
- tableData: [
- ],
- oldtableData: [],
- // 鍒嗛〉鍙傛暟
- pageParams: {
- pageNo: 1,
- pageSize: 12,
- total: 0
- },
- tablespecifications: [
- ],
- // 閫変腑鐨勮妭鐐规暟鎹�
- selectData: {},
- formTypeOptions: [],
- addTreeForm: {
- addTypeArr: []
- }
- }
- },
- watch: {
- filterText(val) {
- this.$refs.tree.filter(val)
- }
- },
- created() {
- this.getStandardTree()
- },
- methods: {
- filterNode(value, data) {
- if (!value) return true
- return data.label.indexOf(value) !== -1
- },
- // 鑾峰彇bom鏍戠殑鏍囧噯鏁版嵁
- async getStandardTree() {
- const { data } = await getMaterialList()
- console.log(data)
- this.standardTree = data.map(item => {
- let name = null
- switch (item.type) {
- case 1:
- name = '鍘熸潗鏂�'
- break
- case 2:
- name = '鍗婃垚鍝�'
- break
- case 3:
- name = '鎴愬搧'
- break
- }
- return {
- ...item, id: item.type, name
- }
- })
- console.log(this.standardTree)
- // formTypeOptions
- // 榛樿绗竴涓洓绾ц妭鐐规悳绱紝鏂板閰嶇疆椤�
- const treeOptions = JSON.parse(JSON.stringify(this.standardTree))
- this.getDefault(treeOptions, 0)
- console.log(treeOptions)
- this.formTypeOptions = treeOptions
- this.$nextTick().then(() => {
- const firstNode = document.querySelector('.el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node')
- firstNode.click()
- // console.log(firstNode)
- })
- },
- getDefault(arr, index) {
- for (const item of arr) {
- if (item.children && item.children?.length > 0) {
- // 鏈夊瓙鑺傜偣
- this.getDefault(item.children, index + 1)
- if (index === 2) {
- item.children = null
- }
- }
- // else {
- // // if ('children' in item) {
- // // //
- // // } else {
- // // // console.log(index, item)
- // // }
- // }
- }
- },
- // 鐐瑰嚮bom鏍戣妭鐐规柟娉�
- async nodeClick(data, node, element) {
- // console.log('data', data)
- // console.log('children' in data)
- // 鏄瓙鑺傜偣
- if (node.level === 4) {
- // console.log(data, node)
- // 瀛樹笅閫変腑鑺傜偣
- this.selectData = data
- // eslint-disable-next-line prefer-const
- this.getTableByClick(data)
- }
- if (!('children' in data)) {
- return
- }
- },
- async getTableByClick(data) {
- // eslint-disable-next-line prefer-const
- let { data: { row, total }} = await getProductList({ pageNo: this.pageParams.pageNo, pageSize: this.pageParams.pageSize, specificationsId: data.id })
- // console.log(row)
- this.pageParams.total = total
- row = row.map((item, index) => ({ ...item, index }))
- for (const item of row) {
- if (item.children) {
- const res = await getProductSonList({ fatherName: item.father })
- item.children = res.data
- item.id = item.father
- }
- }
- this.tableData = row
- },
- specificationDetails(row) {
- // 璺宠浆浜у搧瑙勬牸璇︽儏椤�
- this.$router.push(`/standardLibrary/SpecificationDetails/${row.id}`)
- },
- handleSizeChange(val) {
- console.log(`姣忛〉 ${val} 鏉)
- this.pageParams.pageSize = val
- this.getTableByClick(this.selectData)
- },
- handleCurrentChange(val) {
- console.log(`褰撳墠椤�: ${val}`)
- this.pageParams.pageNo = val
- this.getTableByClick(this.selectData)
- },
- // 鏌ヨ鎸夐挳
- filteredTableData() {
- this.oldtableData = this.tableData
- // 鏍规嵁杈撳叆鐨勫叧閿瓧寰楀埌杩囨护鍚庣殑鏁版嵁锛屽鏋滄湁灏辨妸杩囨护鍚庣殑鏁版嵁灞曠ず鍦ㄩ〉闈笂
- const filteredtabledata = this.tableData.filter(item => {
- return item.name.includes(this.searchData.keyword)
- })
- // console.log('filteredtabledata', filteredtabledata)
- this.tableData = filteredtabledata
- },
- // 閲嶇疆鎸夐挳
- resetBtn() {
- this.searchData.keyword = ''
- this.tableData = this.oldtableData
- },
- renderContent(h, { node, data, store }) {
- // console.log('data', data)
- // console.log('node', node)
- // 鍒ゆ柇鏄惁鏄埗鑺傜偣鎴栨枃浠跺す
- const isFolder = ('children') in data
- return (
- <span class='tree-node'>
- {isFolder ? (
- <i
- class={node.expanded ? 'el-icon-folder-opened blue-folder' : 'el-icon-folder blue-folder'}
- ></i>
- ) : (
- <i class='el-icon-document blue-folder'></i>
- )}
- <div class='tree-lable'>[{node.level}] {data.name}</div>
- </span>
- )
- },
- async subAddTreeForm() {
- this.addTreeFormVisible = false
- console.log(this.addTreeForm.addTypeArr.length)
- let res = null
- try {
- switch (this.addTreeForm.addTypeArr.length) {
- case 1:
- console.log(this.addTreeForm)
- res = await addMaterial({ ...this.addTreeForm, type: this.addTreeForm.addTypeArr.pop() })
- break
- case 2:
- console.log(this.addTreeForm)
- res = await addStandards({ ...this.addTreeForm, materialId: this.addTreeForm.addTypeArr.pop() })
- break
- case 3:
- console.log(this.addTreeForm)
- res = await addSpecifications({ ...this.addTreeForm, standardId: this.addTreeForm.addTypeArr.pop() })
- break
- }
- } catch (error) {
- this.$message.error('娣诲姞澶辫触')
- }
+ import {
+ getMaterialList,
+ getProductList,
+ addMaterial,
+ addStandards,
+ addSpecifications,
+ deleteListApi,
+ blurUpdateApi,
+ getVersion,
+ addVersion,
+ } from "@/api/standardLibrary";
- console.log(res)
- this.$message.success('娣诲姞鎴愬姛')
- this.addTreeForm = {}
- this.getStandardTree()
- this.getTableByClick(this.selectData)
- },
- changeCascader(data) {
- console.log(data)
- this.addTreeForm.addTypeArr = data
- },
- closeAddTreeForm() {
- this.addTreeForm = {
- addTypeArr: []
- }
- console.log(this.addTreeForm)
- }
- /** 琛ㄦ牸鏌愯鐐瑰嚮浜嬩欢 */
- // handleRowClick(row, column, event) {
- // // 鍒ゆ柇褰撳墠琛屾槸鍚︽湁瀛愰泦锛岃嫢娌℃湁鍒欑粨鏉熷鐞�
- // // console.log(row)
- // if (!row.children) return
- // this.$refs.tableData.toggleRowExpansion(row)
- // }
- }
-}
+ import {
+ selectproductModelApi
+ } from "@/api/basicData/index";
+ import {
+ Tree
+ } from "element-ui";
+ export default {
+ data() {
+ return {
+ options: [],
+ versionValue: "",
+ deleteList: [],
+ msg: "",
+ isAllSelect: false,
+ addTreeFormVisible: false,
+ filterText: "",
+ // 鏍囧噯搴揵om鏍�
+ standardTree: [],
+ // bom鐨�,榛樿閰嶇疆鍊�
+ defaultProps: {
+ children: "children",
+ label: "name",
+ value: "id",
+ },
+ tableData: [],
+ oldtableData: [],
+ tablespecifications: [],
+ // 閫変腑鐨勮妭鐐规暟鎹�
+ selectData: {},
+ formTypeOptions: [],
+ addTreeForm: {
+ addTypeArr: [],
+ }
+ };
+ },
+ watch: {
+ filterText(val) {
+ this.$refs.tree.filter(val);
+ }
+ },
+ created() {
+ this.getStandardTree();
+ },
+ mounted() {},
+ methods: {
+ async initSelect() {
+ this.options = [];
+ this.versionValue = "";
+ const response = await getVersion({
+ specificationsId: this.selectData.id,
+ });
+ if (response.code === 200 && response.data.length > 0) {
+ this.getTableByClick(this.selectData, response.data[0]);
+ for (let i = 0; i < response.data.length; i++) {
+ this.options.push({
+ value: response.data[i],
+ label: "V" + response.data[i],
+ });
+ this.versionValue = response.data[0];
+ }
+ }
+ },
+ changeSelect() {
+ this.tableData = [];
+ this.getTableByClick(this.selectData, this.versionValue);
+ },
+ async insertVersion() {
+ const resp = await addVersion({
+ specificationsId: this.selectData.id
+ });
+ if (resp.code === 200) {
+ this.initSelect();
+ this.$message({
+ type: "success",
+ message: resp.message,
+ });
+ }
+ },
+ addVersionFun() {
+ this.$confirm("纭娣诲姞鏂扮殑鐗堟湰鍙峰悧?", "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ this.insertVersion();
+ })
+ .catch(() => {});
+ },
+ filterNode(value, data) {
+ if (!value) return true;
+ return data.name.indexOf(value) !== -1;
+ },
+ // 鑾峰彇bom鏍戠殑鏍囧噯鏁版嵁
+ async getStandardTree() {
+ let {
+ data
+ } = await getMaterialList();
+ if (data.length < 2) {
+ if (data.length == 0) {
+ data = [{
+ type: 0
+ }, {
+ type: 1
+ }]
+ } else {
+ data[1] = {
+ type: data[0].type == 1 ? 0 : 1
+ }
+ }
+ }
+ this.standardTree = data.map((item) => {
+ let name = null;
+ switch (item.type) {
+ case 0:
+ name = "鍘熸潗鏂�";
+ break;
+ case 1:
+ name = "鎴愬搧";
+ break;
+ }
+ return {
+ ...item,
+ id: item.type,
+ name,
+ };
+ });
+ // formTypeOptions
+ // 榛樿绗竴涓洓绾ц妭鐐规悳绱紝鏂板閰嶇疆椤�
+ const treeOptions = JSON.parse(JSON.stringify(this.standardTree));
+ this.getDefault(treeOptions, 0);
+ this.formTypeOptions = treeOptions;
+ this.$nextTick().then(() => {
+ const firstNode = document.querySelector(
+ ".el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node"
+ );
+ try {
+ firstNode.click();
+ } catch (e) {
+ //TODO handle the exception
+ }
+ });
+ },
+ getDefault(arr, index) {
+ for (const item of arr) {
+ if (item.children && item.children?.length > 0) {
+ // 鏈夊瓙鑺傜偣
+ this.getDefault(item.children, index + 1);
+ if (index === 2) {
+ item.children = null;
+ }
+ }
+ }
+ },
+ // 鐐瑰嚮bom鏍戣妭鐐规柟娉�
+ async nodeClick(data, node, element) {
+ // 鏄瓙鑺傜偣
+ if (node.level === 4) {
+ this.getParentData(node.parent, node.data.name);
+ // 瀛樹笅閫変腑鑺傜偣
+ this.selectData = data;
+ this.getTableByClick(data, this.versionValue);
+ this.initSelect();
+ }
+ if (!("children" in data)) {
+ return;
+ }
+ },
+ // 鑾峰彇鏍戣矾寰�
+ getParentData(node, name) {
+ if (node !== null) {
+ if (node.data.name !== undefined) {
+ this.msg = node.data.name + " > " + name;
+ }
+ this.getParentData(node.parent, this.msg);
+ }
+ },
+ async getTableByClick(data, versionVal) {
+ await getProductList({
+ specificationsId: data.id,
+ version: versionVal,
+ }).then((res) => {
+ res.data.forEach((i) => {
+ if (i.name === undefined) {
+ i.name = i.children[0].name;
+ i.unit = i.children[0].unit;
+ i.id = i.children[0].id;
+ i.required = i.children[0].required;
+ i.internal = i.children[0].internal;
+ i.edit = true;
+ delete i.children;
+ }
+ });
+ this.tableData = res.data;
+ this.selectDataList();
+ });
+ },
+ specificationDetails(row) {
+ // 璺宠浆浜у搧瑙勬牸璇︽儏椤�
+ this.$router.push(`/standardLibrary/SpecificationDetails/${row.id}`);
+ },
+ renderContent(h, {
+ node,
+ data,
+ store
+ }) {
+ // 鍒ゆ柇鏄惁鏄埗鑺傜偣鎴栨枃浠跺す
+ const isFolder = "children" in data;
+ return ( <
+ span class = "tree-node" > {
+ isFolder ? ( <
+ i class = {
+ node.expanded ?
+ "el-icon-folder-opened blue-folder" : "el-icon-folder blue-folder"
+ } >
+ <
+ /i>
+ ) : ( <
+ i class = "el-icon-document blue-folder" > < /i>
+ )
+ } <
+ div class = "tree-lable" > [{
+ node.level
+ }] {
+ data.name
+ } <
+ /div> < /
+ span >
+ );
+ },
+ async subAddTreeForm() {
+ let res = null;
+ try {
+ switch (this.addTreeForm.addTypeArr.length) {
+ case 1:
+ res = await addMaterial({
+ ...this.addTreeForm,
+ type: this.addTreeForm.addTypeArr[0],
+ });
+ break;
+ case 2:
+ res = await addStandards({
+ ...this.addTreeForm,
+ materialId: this.addTreeForm.addTypeArr[1],
+ });
+ break;
+ case 3:
+ res = await addSpecifications({
+ ...this.addTreeForm,
+ standardId: this.addTreeForm.addTypeArr[2],
+ });
+ break;
+ }
+ } catch (error) {
+ this.$message.error("娣诲姞澶辫触");
+ }
+ this.$message.success("娣诲姞鎴愬姛");
+ this.addTreeFormVisible = false;
+ this.getStandardTree();
+ this.getTableByClick(this.selectData, this.versionValue);
+ },
+ changeCascader(data) {
+ this.addTreeForm.addTypeArr = data;
+ },
+ selectProductModelTable() {
+ selectproductModelApi(this.params).then((res) => {
+ res.data.forEach((i) => {
+ if (i.name === undefined) {
+ i.name = i.children[0].name;
+ i.unit = i.children[0].unit;
+ i.id = i.children[0].id;
+ i.edit = true;
+ delete i.children;
+ }
+ });
+ this.tableData = res.data;
+ this.selectDataList();
+ });
+ },
+ selectDataList() {
+ this.tableData.forEach((a) => {
+ a.code = "[1]";
+ if (a.children != undefined) {
+ a.children.forEach((b) => {
+ b.code = "[2]";
+ });
+ }
+ });
+ },
+ // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆
+ // 鍏ㄩ��/鍙栨秷閫夋搷浣�
+ selectAll(val) {
+ this.isAllSelect = !this.isAllSelect;
+ let data = this.tableData;
+ this.toggleSelect(data, this.isAllSelect, "all");
+ },
+ //閫夋嫨鏌愯
+ selectTr(selection, row) {
+ this.$set(row, "isChecked", !row.isChecked);
+ this.$nextTick(() => {
+ this.isAllSelect = row.isChecked;
+ this.toggleSelect(row, row.isChecked, "tr");
+ });
+ },
+ //閫掑綊瀛愮骇
+ toggleSelect(data, flag, type) {
+ if (type === "all") {
+ if (data.length > 0) {
+ data.forEach((item) => {
+ this.toggleSelection(item, flag);
+ if (item.children && item.children.length > 0) {
+ this.toggleSelect(item.children, flag, type);
+ }
+ });
+ }
+ } else {
+ if (data.children && data.children.length > 0) {
+ data.children.forEach((item) => {
+ item.isChecked = !item.isChecked;
+ this.$refs.multipleTable.toggleRowSelection(item, flag);
+ this.toggleSelect(item, flag, type);
+ });
+ }
+ }
+ },
+ //鏀瑰彉閫変腑
+ toggleSelection(row, flag) {
+ this.$set(row, "isChecked", flag);
+ this.$nextTick(() => {
+ if (flag) {
+ this.$refs.multipleTable.toggleRowSelection(row, flag);
+ } else {
+ this.$refs.multipleTable.clearSelection();
+ }
+ });
+ },
+ handleSelectionChange(val) {
+ this.deleteList = [];
+ val.forEach((v) => {
+ if (v.id !== undefined) {
+ this.deleteList.push(v.id);
+ }
+ });
+ },
+ // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫
+ deleteListClick() {
+ if(this.deleteList.length==0){
+ this.$message.error('璇烽�夋嫨瑕佸垹闄ょ殑椤圭洰')
+ return
+ }
+ deleteListApi(this.deleteList).then((res) => {
+ this.$message({
+ message: res.message,
+ type: "success",
+ });
+ this.getTableByClick(this.selectData, this.versionValue);
+ });
+ },
+ async requiredOnfocus(scope) {
+ let obj = {
+ id: scope.row.id,
+ required: scope.row.required,
+ internal: scope.row.internal,
+ };
+
+ await blurUpdateApi(obj).then((res) => {
+ this.$message({
+ message: res.message,
+ type: "success",
+ });
+ this.getTableByClick(this.selectData, this.versionValue);
+ });
+ },
+ },
+ };
</script>
<style lang="scss" scoped>
+ // el-table琛ㄦ牸瀵归綈
+ ::v-deep .el-table__row:not([class*="el-table__row--level-"]) {
+ td:nth-child(2) {
+ padding-left: 23px !important;
+ }
+ }
-// el-table琛ㄦ牸瀵归綈
-::v-deep .el-table__row:not([class*="el-table__row--level-"]) {
- td:nth-child(2){
- padding-left: 23px !important;
- }
-}
-// .dialogform {
-// transform: translate(-50%, -50%);
-// top: 50% !important;
-// left: 50% !important;
-// width: 1000px;
-// height: 800px;
-// }
-.standard-library-main{
- width: 100vh;
- height: 100%;
-// 椤甸潰涓績鍐呭鍖哄煙
- .content-main{
- display: flex;
- height: 100%;
- min-height: calc(100vh - 88px);
- max-height: calc(100vh - 88px);
- padding: 15px;
- >div{
- padding: 20px;
- background: #fff;
- }
- .library-bom{
- // padding-right: 10px;
- width: 300px;
- // height: 100%;
- max-height: 100%;
- // margin-right: 12px;
- // overflow-y: scroll;
- .el-tree {
- // margin-top:
- width: 100%;
- ::v-deep .el-tree-node__content{
- height: 24px !important;
- font-size: 18px;
- // display: inline-block !important;
- padding: 2px;
- // color: #333;
- .tree-node{
- display: flex;
- align-items: center;
- height: 20px;
- }
- .tree-lable{
- height: 100%;
- line-height: 23px;
- font-size: 12px;
- padding-left: 8px;
- }
- .blue-folder{
- color: rgb(64, 158, 255)
- }
- }
- }
- // .el-tree {
- // margin-top: 12px;
- // ::v-deep .el-tree-node__content{
- // height: 24px !important;
- // font-size: 14px;
- // display: inline-block !important;
- // padding: 2px;
- // color: #333;
- // }
- // ::v-deep .el-tree-node__content:hover{
- // background: rgba(58,124,253,0.1) ;
- // // opacity: 0.31;
- // border-radius: 3px;
- // color: #333 !important;
- // }
- // ::v-deep .el-tree-node:focus>.el-tree-node__content{
- // background: rgba(58,124,253,0.1) ;
- // // opacity: 0.31;
- // border-radius: 3px;
- // color: #333 !important;
- // }
- // }
- }
- .library-table{
- // height: 100%;
- width: 170vh;
- max-height: 100%;
- // flex: 8;
- margin-left: 12px;
- display: flex;
- flex-direction: column;
- // overflow-y: scroll;
- .table-header{
- display: flex;
- justify-content: space-between;
- .el-form-item{
- margin-bottom: 30px !important;
- }
- }
- .table-box{
- flex: 1;
- background: #fff;
- // padding: 20px 20px 10px 20px;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
+ .standard-library-main {
+ width: 100vh;
+ height: 100%;
- .el-table {
- // flex: 1;
- // max-height: 680px;
- // overflow-y: scroll;
- }
- >div:nth-child(3){
- // height: 20px;
- display: flex;
- justify-content: end;
- margin: 10px 0;
- }
- }
- }
- }
- .addTree{
- .el-form-item{
- margin-bottom: 10px;
- }
- .el-cascader{
- width: 100%;
- }
- }
-}
-</style>
+ // 椤甸潰涓績鍐呭鍖哄煙
+ .content-main {
+ display: flex;
+ height: 100%;
+ min-height: calc(100vh - 88px);
+ max-height: calc(100vh - 88px);
+ padding: 15px;
+
+ >div {
+ padding: 20px;
+ background: #fff;
+ }
+
+ .library-bom {
+ // padding-right: 10px;
+ width: 300px;
+ overflow-y: auto;
+ // height: 100%;
+ max-height: 100%;
+
+ // margin-right: 12px;
+ // overflow-y: scroll;
+ .el-tree {
+ // margin-top:
+ width: 100%;
+
+ ::v-deep .el-tree-node__content {
+ height: 24px !important;
+ font-size: 18px;
+ // display: inline-block !important;
+ padding: 2px;
+
+ // color: #333;
+ .tree-node {
+ display: flex;
+ align-items: center;
+ height: 20px;
+ }
+
+ .tree-lable {
+ height: 100%;
+ line-height: 23px;
+ font-size: 12px;
+ padding-left: 8px;
+ }
+
+ .blue-folder {
+ color: rgb(64, 158, 255);
+ }
+ }
+ }
+ }
+
+ .library-table {
+ // height: 100%;
+ width: 170vh;
+ max-height: 100%;
+ // flex: 8;
+ margin-left: 12px;
+ display: flex;
+ flex-direction: column;
+
+ // overflow-y: scroll;
+ .table-header {
+ display: flex;
+ justify-content: space-between;
+ width: 100%;
+
+ .el-form-item {
+ margin-bottom: 30px !important;
+ }
+ }
+
+ .table-box {
+ flex: 1;
+ background: #fff;
+ // padding: 20px 20px 10px 20px;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+
+ >div:nth-child(3) {
+ // height: 20px;
+ display: flex;
+ justify-content: end;
+ margin: 10px 0;
+ }
+ }
+ }
+ }
+
+ .addTree {
+ .el-form-item {
+ margin-bottom: 10px;
+ }
+
+ .el-cascader {
+ width: 100%;
+ }
+ }
+ }
+
+ .search-bar {
+ .el-input {
+ position: relative;
+ font-size: 0.07292rem;
+ display: inline-block;
+ width: 70%;
+ }
+ }
+
+ .firstDiv {
+ float: left;
+ width: 20px;
+ height: 20px;
+ border-radius: 50%;
+ background-color: #eff5ff;
+ margin-top: 5px;
+ justify-content: center;
+ display: flex;
+ align-items: center;
+ margin-right: 8px;
+ }
+
+ .el-tag.el-tag {
+ border-color: transparent;
+ background-color: transparent;
+ }
+
+ .el-tag.el-tag:hover {
+ border-color: transparent;
+ background-color: transparent;
+ }
+
+ .serve-btn {
+ width: 100%;
+ padding-bottom: 6px;
+ text-align: right;
+
+ .el-select {
+ margin-right: 10px;
+ }
+ }
+
+ .tipMsg {
+ float: left;
+ font-size: 16px;
+ font-weight: 500;
+ color: #999999;
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.3