From 58c4b6003ad6f9a96d53c944bedc09f6ec3f0910 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期日, 24 九月 2023 18:35:56 +0800
Subject: [PATCH] modified: src/assets/api/controller.js modified: src/components/view/sale.vue modified: src/components/view/standard.vue modified: src/main.js modified: src/view/index.vue
---
src/components/view/standard-table/technology.vue | 325 +++++++++++++++++++++++++++++++++++++----------------
1 files changed, 224 insertions(+), 101 deletions(-)
diff --git a/src/components/view/standard-table/technology.vue b/src/components/view/standard-table/technology.vue
index edde54e..cc23708 100644
--- a/src/components/view/standard-table/technology.vue
+++ b/src/components/view/standard-table/technology.vue
@@ -1,7 +1,225 @@
+<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>
@@ -30,109 +248,14 @@
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>
- <el-table :data="tableData" style="width: 100%;margin-bottom: 20px;" row-key="name" border
- @selection-change="handleSelectionChange" default-expand-all
- :tree-props="{ children: 'name', hasChildren: 'children' }">
- <el-table-column type="selection" width="55">
- </el-table-column>
- <el-table-column type="index" width="50" label="搴忓彿">
- </el-table-column>
- <el-table-column prop="name" label="宸ュ簭" sortable width="300px">
- <template slot-scope="scope">
- <el-tag>
- <div class="firstDiv" :style="`color: ${scope.row.children? '#16a7ff' : '#58c173'}`">
- {{ scope.row.children ? "01" : "02" }}
- </div>
- </el-tag>
- <span style="color: black">{{ scope.row.name }}</span>
-
- </template>
- </el-table-column>
- <el-table-column prop="" sortable label="宸ヨ壓鍚嶇О">
- </el-table-column>
- <el-table-column prop="" label="鎸囨爣鍚嶇О">
- </el-table-column>
- <el-table-column prop="" label="鍗曚綅">
- </el-table-column>
- <el-table-column prop="" label="鍐呮帶鍊�">
- </el-table-column>
- <el-table-column prop="unit" label="鏍囧噯鍊�">
- </el-table-column>
- </el-table>
- </div>
- </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>
--
Gitblit v1.9.3