| | |
| | | <template> |
| | | <div class="standard"> |
| | | <div style="width: 100%;height: 68vh;overflow-x: auto;"> |
| | | <el-table :data="tableData" row-key="rowId" border height="calc(90vh - 200px)" |
| | | @select-all="selectAll" @select="selectTr" ref="multipleTable" |
| | | :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'left'}" |
| | | @selection-change="handleSelectionChange" default-expand-all |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> |
| | | <el-table-column type="selection" width="55"> |
| | | </el-table-column> |
| | | <el-table-column type="index" width="60" label="序号" :resizable="false"> |
| | | </el-table-column> |
| | | <el-table-column prop="father" label="工序" width="200" :resizable="false"> |
| | | <template slot-scope="scope"> |
| | | <el-tag class="tag" v-if="scope.row.children" type="primary">01</el-tag> |
| | | <span style="color: black"> |
| | | {{ scope.row.father }} |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="工艺名称" width="200" :resizable="false"> |
| | | <template slot-scope="scope"> |
| | | <el-tag class="tag" type="success" v-if="!scope.row.children">02</el-tag> |
| | | <span style="color: black">{{ scope.row.name }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="dg" label="设备组" width="200" :resizable="false"> |
| | | <template slot-scope="scope"> |
| | | <div class="showDiv"> |
| | | <span>{{scope.row.dg}}</span> |
| | | <div @click="showDialog(scope.row)">选择</div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="pq" label="生产定额(个/天)" :resizable="false"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.pq" |
| | | v-if="scope.row.dg != null" size="small" |
| | | @blur="updatePq(scope.row)" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <el-dialog |
| | | title="选择设备组" |
| | | :visible.sync="deviceGroupDialog" |
| | | width="30%"> |
| | | <el-form :model="formData"> |
| | | <el-form-item prop="deviceGroup" label="设备组:" |
| | | :rules="{required:true,message:'设备组不能为空',trigger:'change'}"> |
| | | <el-select placeholder="请选择设备组" size="small" |
| | | v-model="formData.deviceGroup"> |
| | | <el-option :value="item.father" |
| | | v-for="(item,index) in deviceList" :key="index" :label="item.father"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="confirmUpdate()">确 定</el-button> |
| | | <el-button @click="deviceGroupDialog = false">取 消</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | deviceGroupDialog:false, |
| | | formData:{ |
| | | deviceGroup:'' |
| | | }, |
| | | row:{}, |
| | | selects: [], |
| | | deviceList:[], |
| | | isAllSelect:false, |
| | | } |
| | | }, |
| | | props:['tableData','tableType'], |
| | | created() {}, |
| | | mounted() { |
| | | }, |
| | | methods: { |
| | | //工艺路线--获取设备组列表 |
| | | getDeviceList(){ |
| | | this.$axios.get(this.$api.url.chooseDevice).then(res=>{ |
| | | this.deviceList = res.data; |
| | | }).catch(error=>{ |
| | | this.$message.error(error.message); |
| | | }) |
| | | }, |
| | | showDialog(row){ |
| | | this.getDeviceList(); |
| | | this.formData.deviceGroup = row.dg; |
| | | this.row = row; |
| | | this.deviceGroupDialog = true |
| | | }, |
| | | confirmUpdate(){ |
| | | this.$axios.post(this.$api.url.writeDevice,{ |
| | | id : this.row.id, |
| | | deviceGroup : this.formData.deviceGroup |
| | | }).then(res=>{ |
| | | this.$emit("updateDevice",true); |
| | | this.$message.success(res.message); |
| | | this.deviceGroupDialog = false |
| | | }).catch(error=>{ |
| | | |
| | | }) |
| | | }, |
| | | // 表格树全部选中配置 |
| | | // 全选/取消选操作 |
| | | //选择某行 |
| | | 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(); |
| | | } |
| | | }); |
| | | }, |
| | | selectAll(val) { |
| | | this.isAllSelect = !this.isAllSelect; |
| | | let data = this.tableData; |
| | | this.toggleSelect(data, this.isAllSelect, "all"); |
| | | }, |
| | | handleSelectionChange(val) { |
| | | this.deleteList = []; |
| | | val.forEach((v) => { |
| | | this.searchIdFun(v); |
| | | }); |
| | | this.$emit("childData",this.deleteList); |
| | | }, |
| | | //递归查找选中数据id |
| | | searchIdFun(data){ |
| | | let obj = data; |
| | | if(obj.children != undefined){ |
| | | this.searchIdFun(obj.children); |
| | | }else{ |
| | | this.deleteList.push(obj.id); |
| | | } |
| | | }, |
| | | // 表格树全部选中配置 结束 |
| | | updatePq(row){ |
| | | this.$axios.post(this.$api.url.technologyWrite,{ |
| | | id : row.id, |
| | | productionQuota : row.pq |
| | | }).then(res=>{ |
| | | this.$message.success(res.message); |
| | | }).catch(error=>{ |
| | | this.$message.error(error.message); |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .standard { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | .tag{ |
| | | line-height:24px; |
| | | text-align:center; |
| | | width:36px; |
| | | height:24px; |
| | | |
| | | border-radius:12px; |
| | | } |
| | | .tag:nth-child(1){ |
| | | margin-left:20px; |
| | | } |
| | | .standard .showDiv{ |
| | | cursor: pointer; |
| | | } |
| | | .standard .showDiv div{ |
| | | color:#407ab9; |
| | | display: none; |
| | | } |
| | | .showDiv span{ |
| | | cursor: pointer; |
| | | display: block; |
| | | width: 100%; |
| | | } |
| | | .showDiv:hover span{ |
| | | display: none; |
| | | } |
| | | .showDiv:hover div{ |
| | | display: block; |
| | | } |
| | | </style> |
| | | <style> |
| | |
| | | overflow: auto; |
| | | } |
| | | |
| | | .standard .el-table__body-wrapper { |
| | | /* .standard .el-table__body-wrapper { |
| | | height: 100%; |
| | | } |
| | | } */ |
| | | |
| | | .standard .el-table__body { |
| | | /* .standard .el-table__body { |
| | | height: 100%; |
| | | } |
| | | .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){ |
| | | } */ |
| | | /* .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){ |
| | | padding-left: 23px !important; |
| | | } |
| | | } */ |
| | | </style> |
| | | |
| | | <template> |
| | | <div class="standard"> |
| | | <el-table :data="tableData" border style="width: 100%" row-key="id" |
| | | :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> |
| | | <el-table-column type="selection" width="50"> |
| | | </el-table-column> |
| | | <template v-if="tableType==1"> |
| | | <el-table-column type="index" label="序号" width="70"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.index }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="项目"> |
| | | <template slot-scope="scope"> |
| | | <el-tag size="mini" :type="scope.row.index? '':'success'" :style="{borderRadius: '40%',marginRight: '12px'}">{{ scope.row.index? '01':'02'}}</el-tag> |
| | | {{scope.row.name}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="单位"> |
| | | </el-table-column> |
| | | <el-table-column prop="required" label="标准值"> |
| | | </el-table-column> |
| | | <el-table-column prop="internal" label="内控值"> |
| | | </el-table-column> |
| | | </template> |
| | | <template v-else> |
| | | <el-table-column prop="name" label="工艺名称"> |
| | | </el-table-column> |
| | | <el-table-column prop="device_group" label="设备组"> |
| | | </el-table-column> |
| | | <el-table-column label="匹配设备"> |
| | | <template> |
| | | <el-button type="text">选择</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="quota" label="工时定额"> |
| | | </el-table-column> |
| | | </template> |
| | | </el-table> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | selects: [] |
| | | } |
| | | }, |
| | | props:['tableData','tableType'], |
| | | created() { |
| | | console.log(this.tableData,this.tableType) |
| | | }, |
| | | mounted() { |
| | | |
| | | }, |
| | | methods: { |
| | | handleSelectionChange(val) { |
| | | this.selects = val; |
| | | } |
| | | } |
| | | } |
| | | </script> |