From ac6766c11f8a2b8de903b58c13a8f206fa01dccd Mon Sep 17 00:00:00 2001
From: qinxianzhangyao <11053546+qinxianzhangyao@user.noreply.gitee.com>
Date: 星期五, 15 三月 2024 17:56:32 +0800
Subject: [PATCH] qxtj

---
 src/views/system/package/index.vue |  177 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 106 insertions(+), 71 deletions(-)

diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue
index b1d75ca..651a6e9 100644
--- a/src/views/system/package/index.vue
+++ b/src/views/system/package/index.vue
@@ -48,7 +48,10 @@
         <el-table-column fixed type="selection" width="40" align="center" :show-overflow-tooltip="true" />
         <el-table-column label="搴忓彿" align="center" width="50" prop="newID" fixed />
         <!-- <el-table-column label="缂栧彿" align="center" prop="pacId" /> -->
+        <el-table-column label="濂楅鍒嗙被" width="100px" align="center" prop="categoryNames" fixed></el-table-column>
         <el-table-column label="濂楅鍚嶇О" align="center" prop="pacName" width="150px" fixed />
+        <el-table-column label="浠锋牸" width="80px" align="center" prop="price" fixed>
+        </el-table-column>
         <el-table-column label="鍗曢」鍒楄〃" align="center" prop="allProName" width="1200px">
         </el-table-column>
         <!-- <el-table-column
@@ -74,10 +77,7 @@
             <image-preview :src="scope.row.pacPhone" :width="50" :height="50" />
           </template>
         </el-table-column> -->
-        <el-table-column label="浠锋牸" width="80px" align="center" prop="price">
-        </el-table-column>
 
-        <el-table-column label="濂楅鍒嗙被" width="100px" align="center" prop="categoryNames"></el-table-column>
         <el-table-column label="鍏抽敭瀛�" width="110px" align="center" prop="keyNames"></el-table-column>
         <el-table-column label="鏄惁涓婃灦" width="94px" align="center" prop="isOnSale">
           <template slot-scope="scope">
@@ -122,22 +122,22 @@
     </template>
 
     <!-- 淇敼浣撴濂楅瀵硅瘽妗� -->
-    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="1100px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="100px" :inline="true">
         <!-- <div class="dialo">
         <div class="dialo1"> -->
         <el-form-item label="濂楅鍚嶇О" prop="pacName">
-          <span slot="label" style="display:inline-block;border-bottom: 2px solid blue;" @click="handlePackage">
+          <span slot="label" style="display: inline-block; border-bottom: 2px solid blue" @click="handlePackage">
             濂楅鍚嶇О
           </span>
-          <el-input v-model="form.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" style="width: 200px" />
+          <el-input v-model="form.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" style="width: 150px" />
         </el-form-item>
         <el-form-item label="濂楅鐘舵��" prop="pacStatus">
           <!-- <el-radio-group v-model="form.pacStatus">
               <el-radio :label="0">鍚敤</el-radio>
               <el-radio :label="1">鍋滅敤</el-radio>
             </el-radio-group> -->
-          <el-select v-model="form.pacStatus" placeholder="璇烽�夋嫨鐘舵��" style="width: 200px" filterable clearable>
+          <el-select v-model="form.pacStatus" placeholder="璇烽�夋嫨鐘舵��" style="width: 150px" filterable clearable>
             <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
               :value="dict.value"></el-option>
           </el-select>
@@ -149,15 +149,14 @@
             placeholder="璇疯緭鍏ュ晢鍝佺被鐩�"
             style="width: 200px"
           /> -->
-          <el-select v-model="form.categoryId" placeholder="璇烽�夋嫨濂楅绫荤洰" style="width: 200px" @change="shangpin" filterable
+          <el-select v-model="form.categoryId" placeholder="璇烽�夋嫨濂楅绫荤洰" style="width: 150px" @change="shangpin" filterable
             clearable>
             <el-option v-for="item in categoryList" :key="item.id" :label="item.name" :value="item.id"></el-option>
           </el-select>
         </el-form-item>
 
-
         <el-form-item label="鍏抽敭瀛�" prop="keywords">
-          <el-select multiple v-model="form.keywords" placeholder="璇烽�夋嫨鍏抽敭瀛�" style="width: 200px" @change="sel" filterable
+          <el-select multiple v-model="form.keywords" placeholder="璇烽�夋嫨鍏抽敭瀛�" style="width: 150px" @change="sel" filterable
             clearable>
             <el-option v-for="item in keywordList" :key="item.id" :label="item.keyword" :value="item.id"></el-option>
           </el-select>
@@ -167,43 +166,50 @@
               <el-radio :label="0">鍚敤</el-radio>
               <el-radio :label="1">鍋滅敤</el-radio>
             </el-radio-group> -->
-          <el-select v-model="form.isOnSale" placeholder="璇烽�夋嫨鏄惁涓婃灦" style="width: 200px" filterable clearable>
+          <el-select v-model="form.isOnSale" placeholder="璇烽�夋嫨鏄惁涓婃灦" style="width: 150px" filterable clearable>
             <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
               :value="dict.value"></el-option>
           </el-select>
         </el-form-item>
 
         <el-form-item label="鎺掑簭" prop="sort">
-          <el-input v-model="form.sort" placeholder="璇疯緭鍏ユ帓搴�" style="width: 200px" />
+          <el-input v-model="form.sort" placeholder="璇疯緭鍏ユ帓搴�" style="width: 150px" />
         </el-form-item>
         <el-form-item label="灏忕▼搴忎环鏍�" prop="retailPrice">
-          <el-input v-model="form.retailPrice" placeholder="璇疯緭鍏ュ皬绋嬪簭浠锋牸" style="width: 200px" />
+          <el-input v-model="form.retailPrice" placeholder="璇疯緭鍏ュ皬绋嬪簭浠锋牸" style="width: 150px" />
         </el-form-item>
         <el-form-item label="鍘熶环" prop="counterPrice">
-          <el-input v-model="form.counterPrice" placeholder="璇疯緭鍏ュ師浠�" style="width: 200px" />
+          <el-input v-model="form.counterPrice" placeholder="璇疯緭鍏ュ師浠�" style="width: 150px" />
         </el-form-item>
-        <el-form-item label="濂楅鎻忚堪" prop="pacRemark">
-          <el-input type="textarea" v-model="form.pacRemark" placeholder="璇疯緭鍏ュ椁愭弿杩�" style="width: 820px"
-            rows="2"></el-input>
-        </el-form-item>
-        <el-form-item label="璇︾粏浠嬬粛" prop="detail">
-          <!-- <el-input
+
+        <div v-if="!isCollapsed" style="display:flex">
+          <div>
+            <el-form-item label="濂楅鎻忚堪" prop="pacRemark">
+              <el-input type="textarea" v-model="form.pacRemark" placeholder="璇疯緭鍏ュ椁愭弿杩�" style="width: 670px"
+                rows="2"></el-input>
+            </el-form-item>
+            <el-form-item label="璇︾粏浠嬬粛" prop="detail">
+              <!-- <el-input
             v-model="form.detail"
             placeholder="璇疯緭鍏ヨ缁嗕粙缁�"
             style="width: 200px"
           /> -->
-          <editor v-model="form.detail" :min-height="192" />
-        </el-form-item>
-        <!-- </div> -->
-        <div class="dialo2">
-          <el-form-item label="鍥剧墖">
-            <image-upload v-model="form.pacPhone" />
-          </el-form-item>
+              <editor v-model="form.detail" :min-height="192" style="width: 670px" />
+            </el-form-item>
+          </div>
+          <!-- </div> -->
+          <div class="dialo2">
+            <el-form-item label="鍥剧墖">
+              <image-upload v-model="form.pacPhone" />
+            </el-form-item>
+          </div>
+          <!-- </div> -->
         </div>
-        <!-- </div> -->
       </el-form>
-
-      <el-button type="primary" plain size="mini" icon="el-icon-plus" @click="addmembers()">鏂板</el-button>
+      <el-button type="primary" plain size="mini" @click="toggleCollapse">{{
+        isCollapsed ? "灞曞紑" : "鏀惰捣"
+      }}</el-button>
+      <el-button type="primary" plain size="mini" icon="el-icon-plus" @click="addmembers()">鏂板鍗曢」</el-button>
       <el-table v-loading="loading" :data="form.tjProjectList" @selection-change="handleSelectionChange" border
         max-height="275" style="margin: 10px 0">
         <el-table-column label="搴忓彿" align="center" type="index" />
@@ -264,6 +270,8 @@
 import { listCategory } from "@/api/mall/category";
 import { listKeyword } from "@/api/mall/keyword";
 import {
+  getPacList,
+  getPacInFo,
   listPackage,
   getPackage,
   delPackage,
@@ -273,6 +281,7 @@
   updateStatus,
   getAllList,
   updateProject,
+  getPacTjProjectList
 } from "@/api/system/package";
 import { Message } from "element-ui";
 export default {
@@ -281,20 +290,22 @@
   components: { Packages },
   data() {
     let checkPhoneNum = (rule, value, callback) => {
-      console.log(value)
+      console.log(value);
       let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
       if (value == "" && value == undefined && !value) {
-        return callback('');
+        return callback("");
       } else if (value != undefined && value != "") {
         return callback();
       } else if (!patter.test(value)) {
-        return callback('');
+        return callback("");
       }
     };
     return {
+      isCollapsed: true, // 榛樿涓烘姌鍙犵姸鎬�
       categoryList: [],
       keys: "",
       keywordList: [],
+      dataListAll: [],
       // 澶氶�夋
       priceNow: "",
       checkAll: false,
@@ -357,9 +368,7 @@
         isOnSale: [
           { required: true, validator: checkPhoneNum, trigger: "change" },
         ],
-        sort: [
-          { required: true, validator: checkPhoneNum, trigger: "blur" },
-        ],
+        sort: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
         retailPrice: [
           { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
@@ -375,10 +384,22 @@
     this.getCategory();
   },
   methods: {
+    toggleCollapse() {
+      this.isCollapsed = !this.isCollapsed; // 鐐瑰嚮鎸夐挳鏃跺垏鎹sCollapsed鐨勫��
+    },
     /** 鏌ヨ浣撴濂楅鍒楄〃 */
     getList() {
       this.loading = true;
-      listPackage(this.queryParams).then((response) => {
+      getPacTjProjectList().then((response) => {
+        this.allList = response.data;
+        if (this.allList.proStatus === 0) {
+          this.allList.proStatus = "鍚敤";
+        } else {
+          this.allList.proStatus = "鍋滅敤";
+        }
+        this.loading = false;
+      });
+      getPacList(this.queryParams).then((response) => {
         response.rows.forEach((item, index) => {
           item.newID =
             (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
@@ -398,10 +419,10 @@
       });
     },
     sel(val) {
-      let id = val
+      let id = val;
       this.keys = "";
       id.forEach((item) => {
-        this.keys += item + ","
+        this.keys += item + ",";
       });
     },
     /** 鏌ヨ绫荤洰鍒楄〃 */
@@ -445,20 +466,18 @@
       this.getList();
     },
 
-
     handlePackage() {
       this.$refs.aaa.open = true;
       this.$refs.aaa.getList();
-      this.$refs.aaa.title = "濂楅鍚嶇О";
+      this.$refs.aaa.title = "濂楅瀛楀吀";
     },
     handleChanges(param1) {
-      this.form.pacName = param1[0].pacName
-      this.form.hisPacId = param1[0].pacId
+      this.form.pacName = param1[0].pacName;
+      this.form.hisPacId = param1[0].pacId;
       if (param1[0].price) {
-        this.form.counterPrice = param1[0].price
-        this.form.retailPrice = param1[0].price
+        this.form.counterPrice = param1[0].price;
+        this.form.retailPrice = param1[0].price;
       }
-
     },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
@@ -480,15 +499,16 @@
       this.reset();
       this.open = true;
       this.title = "浣撴濂楅淇℃伅缁存姢";
-      getAllList().then((response) => {
-        this.allList = response.data;
-        if (this.allList.proStatus === 0) {
-          this.allList.proStatus = "鍚敤";
-        } else {
-          this.allList.proStatus = "鍋滅敤";
-        }
-        this.loading = false;
-      });
+
+      // getAllList().then((response) => {
+      //   this.allList = response.data;
+      //   if (this.allList.proStatus === 0) {
+      //     this.allList.proStatus = "鍚敤";
+      //   } else {
+      //     this.allList.proStatus = "鍋滅敤";
+      //   }
+      //   this.loading = false;
+      // });
       // if (!this.form.tjProjectList) {
       //     this.form.tjProjectList = []
       //     this.form.tjProjectList.push({
@@ -505,11 +525,10 @@
 
     // 鏄惁鍚敤
     handleStatusChange(row) {
-
       let data = {
         pacId: row.pacId,
         pacStatus: row.pacStatus,
-      }
+      };
       let text = row.pacStatus === "0" ? "鍚敤" : "鍋滅敤";
       this.$confirm("纭瑕�" + text + row.pacName + "濂楅鍚楋紵")
         .then(function () {
@@ -526,15 +545,15 @@
     handleUp() {
       this.title = "浣撴濂楅淇℃伅缁存姢";
       this.open = true;
-      getAllList().then((response) => {
+      getPacTjProjectList().then((response) => {
         this.allList = response.data;
         this.loading = false;
       });
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
-      this.form = row;
-      this.form.keywords = this.form.keyIds;
+      // this.form = row;
+      // this.form.keywords = this.form.keyIds;
       // if (this.form.pacStatus === 0) {
       //   this.form.pacStatus = "鍚敤";
       // } else {
@@ -542,15 +561,16 @@
       // }
       this.title = "浣撴濂楅淇℃伅缁存姢";
       this.open = true;
-      // getAllList().then((response) => {
-      //   this.allList = response.data;
-      //   this.loading = false;
-      // });
+      getPacInFo(row.pacId).then((response) => {
+        this.form = response.data;
+        this.form.keywords = this.form.keyIds;
+      });
     },
 
     // 鏂板琛�
     addmembers() {
       if (this.form.pacName) {
+
         if (!this.form.tjProjectList) {
           this.form.tjProjectList = [];
           this.form.tjProjectList.push({
@@ -599,17 +619,32 @@
               formitem.proId = item.proId;
               formitem.proPrice = item.proPrice;
               formitem.priceNow = item.proPrice;
-              item.tjProjectList.forEach((item1) => {
-                this.$nextTick(() => {
-                  formitem.allSonProName =
-                    formitem.allSonProName + "," + item1.proName;
-                });
-                // this.form.tjProjectList.allSonProName = this.form.tjProjectList.allSonProName+','+item1.proName
-              });
+              formitem.allSonProName =item.allSonProName;
+              // item.tjProjectList.forEach((item1) => {
+              //   this.$nextTick(() => {
+              //     formitem.allSonProName =
+              //       formitem.allSonProName + "," + item1.proName;
+              //   });
+              //   // this.form.tjProjectList.allSonProName = this.form.tjProjectList.allSonProName+','+item1.proName
+              // });
             }
           });
         }
       });
+
+      for (let i = 0; i < this.form.tjProjectList.length; i++) {
+        for (let j = i + 1; j < this.form.tjProjectList.length; j++) {
+          if (
+            this.form.tjProjectList[i].proId == this.form.tjProjectList[j].proId
+          ) {
+            this.form.tjProjectList.splice(j, 1);
+            j--;
+            this.$modal.msgError("姝ら」鐩凡褰曞叆锛屼笉鍙噸澶嶅綍鍏�");
+          }
+        }
+      }
+
+      return this.form.tjProjectList;
     },
     /** 鎻愪氦鎸夐挳 */
     submitForm() {

--
Gitblit v1.8.0