From 279153c8fe809aebb1a2227ae5bd9c9a79e2c359 Mon Sep 17 00:00:00 2001
From: qinxianzhangyao <11053546+qinxianzhangyao@user.noreply.gitee.com>
Date: 星期三, 26 六月 2024 17:39:16 +0800
Subject: [PATCH] qxtj

---
 .gitignore                          |    1 
 src/views/system/packages/index.vue |  925 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 vue.config.js                       |    2 
 src/api/system/package.js           |   34 ++
 4 files changed, 961 insertions(+), 1 deletions(-)

diff --git a/.gitignore b/.gitignore
index 29d56be..35aafb6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,6 +18,7 @@
 *.njsproj
 *.sln
 *.local
+*config*/
 
 package-lock.json
 vue.config.js
diff --git a/src/api/system/package.js b/src/api/system/package.js
index 5ff75d7..9847cda 100644
--- a/src/api/system/package.js
+++ b/src/api/system/package.js
@@ -142,3 +142,37 @@
     params: data
   })
 }
+
+
+
+export function getZhList(query) {
+  return request({
+    url: '/system/zhxm/getZhList',
+    method: 'get',
+    params: query
+  })
+}
+
+export function addzhxm(data) {
+  return request({
+    url: '/system/zhxm',
+    method: 'post',
+    data: data
+  })
+}
+
+export function modifyzhxm(data) {
+  return request({
+    url: '/system/zhxm',
+    method: 'put',
+    data: data
+  })
+}
+
+
+export function delzhxm(pacIds) {
+  return request({
+    url: '/system/zhxm/' + pacIds,
+    method: 'delete'
+  })
+}
\ No newline at end of file
diff --git a/src/views/system/packages/index.vue b/src/views/system/packages/index.vue
new file mode 100644
index 0000000..b238b18
--- /dev/null
+++ b/src/views/system/packages/index.vue
@@ -0,0 +1,925 @@
+<template>
+  <div class="app-container">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
+      <el-form-item label="濂楅鍚嶇О" prop="zhmc">
+        <el-input
+          v-model="queryParams.zhmc"
+          placeholder="璇疯緭鍏ュ椁愬悕绉�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >鎼滅储</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >閲嶇疆</el-button
+        >
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:package:add']"
+          >鏂板</el-button
+        >
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUp"
+          v-hasPermi="['system:package:edit']"
+          >淇敼</el-button
+        >
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:package:remove']"
+          >鍒犻櫎</el-button
+        >
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:package:export']"
+          >瀵煎嚭</el-button
+        >
+      </el-col>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
+    </el-row>
+
+    <!-- 
+    element-loading-background="rgba(0, 0, 0, 0.1)"
+    element-loading-spinner="el-icon-loading"
+        element-loading-text="姝e湪鍔犺浇涓�..." -->
+    <template>
+      <el-table
+        v-loading="loading"
+        style="width: 100%"
+        :data="packageList"
+        @selection-change="handleSelectionChange"
+        border
+      >
+        <el-table-column type="selection" width="40" align="center" />
+        <el-table-column
+          label="濂楅鍚嶇О"
+          align="center"
+          prop="zhmc"
+          width="150px"
+        />
+        <el-table-column label="浠锋牸" width="80px" align="center" prop="price">
+        </el-table-column>
+        <el-table-column label="鍗曢」鍒楄〃" align="center" prop="allProName">
+        </el-table-column>
+
+        <el-table-column
+          label="鎺掑簭"
+          width="50px"
+          align="center"
+          prop="xh"
+        ></el-table-column>
+        <el-table-column
+          label="鎿嶄綔"
+          align="center"
+          width="80px"
+          class-name="small-padding fixed-width"
+        >
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleUpdate(scope.row)"
+              v-hasPermi="['system:package:edit']"
+              title="淇敼"
+            ></el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click="handleDelete(scope.row)"
+              v-hasPermi="['system:package:remove']"
+              title="鍒犻櫎"
+            ></el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <div class="pag">
+        <div class="pag1">
+          <pagination
+            v-show="total > 0"
+            :total="total"
+            :page.sync="queryParams.pageNum"
+            :limit.sync="queryParams.pageSize"
+            @pagination="getList"
+          />
+        </div>
+      </div>
+    </template>
+
+    <!-- 淇敼浣撴濂楅瀵硅瘽妗� -->
+    <el-dialog
+      :title="title"
+      :visible.sync="open"
+      width="1500px"
+      append-to-body
+      :close-on-click-modal="false"
+    >
+      <el-form
+        ref="form"
+        :model="form"
+        :rules="rules"
+        label-width="100px"
+        :inline="true"
+      >
+        <!-- <div class="dialo">
+        <div class="dialo1"> -->
+        <el-form-item label="濂楅鍚嶇О" prop="zhmc">
+          <span
+            slot="label"
+            style="display: inline-block; border-bottom: 2px solid blue"
+            @click="handlePackage"
+          >
+            濂楅鍚嶇О
+          </span>
+          <el-input
+            v-model="form.zhmc"
+            placeholder="璇疯緭鍏ュ椁愬悕绉�"
+            style="width: 150px"
+          />
+        </el-form-item>
+
+        <el-form-item label="鎺掑簭" prop="xh">
+          <el-input
+            v-model="form.xh"
+            placeholder="璇疯緭鍏ユ帓搴�"
+            style="width: 150px"
+          />
+        </el-form-item>
+        <el-form-item label="浠锋牸" prop="pics">
+          <el-input
+            v-model="pics"
+            placeholder="璇疯緭鍏ヤ环鏍�"
+            style="width: 150px"
+          />
+        </el-form-item>
+      </el-form>
+
+      <el-row :gutter="20">
+        <el-col :span="7">
+          <div
+            style="text-align: center; margin-bottom: 10px; margin-top: 10px"
+          >
+            椤圭洰鍒楄〃
+          </div>
+          <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText">
+          </el-input>
+          <div class="tab3">
+            <el-tree
+              class="filter-tree"
+              v-loading="loading"
+              :data="Treedata"
+              :props="defaultProps"
+              show-checkbox
+              node-key="proId"
+              @check-change="handleCurrentChecked"
+              :default-checked-keys="checkedkey"
+              :filter-node-method="filterNode"
+              ref="tree"
+              :render-content="renderContent"
+            >
+            </el-tree>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div
+            style="text-align: center; margin-bottom: 10px; margin-top: 10px"
+          >
+            鏄庣粏椤圭洰鍒楄〃
+          </div>
+          <div class="tab3">
+            <el-tree
+              class="filter-tree"
+              v-loading="loading"
+              :data="TreedataList"
+              node-key="proId"
+              :props="defaultProps"
+              :filter-node-method="filterNode"
+              show-checkbox
+              @check-change="handleCurrentChecked1"
+              :default-checked-keys="checkedListkey"
+              ref="trees"
+              :render-content="renderContent"
+            >
+            </el-tree>
+          </div>
+        </el-col>
+        <el-col :span="11">
+          <div class="grid-content bg-purple">
+            <div
+              style="text-align: center; margin-bottom: 10px; margin-top: 10px"
+            >
+              宸查�夐」鐩垪琛�
+            </div>
+            <el-table
+              :data="DataList"
+              border
+              style="width: 100%"
+              height="400"
+              :span-method="objectSpanMethod"
+            >
+              <el-table-column prop="propinName" label="妫�鏌ラ」鐩�">
+              </el-table-column>
+              <el-table-column prop="proPrice" label="鍘熶环" width="56px">
+              </el-table-column>
+              <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="260px">
+              </el-table-column>
+            </el-table>
+            <!-- <h3 style="font-weight: 600">鍚堣锛歿{ pics }}鍏�</h3> -->
+          </div>
+        </el-col>
+      </el-row>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+
+    <Packages ref="aaa" @add="handleChanges" />
+  </div>
+</template>
+
+<script>
+import Packages from "@/components/Packages";
+import { getProParentIdDxList, getProSonDxList } from "@/api/system/tijian";
+import {
+  getZhList,
+  addzhxm,
+  modifyzhxm,
+  getPacInFo,
+  delzhxm,
+  addPackage,
+  updatePackage,
+  updateProject,
+  getPacTjProjectList,
+} from "@/api/system/package";
+import { Message } from "element-ui";
+export default {
+  name: "Package",
+  dicts: ["sys_normal_disable", "sys_yes_no", "dict_tjtype"],
+  components: { Packages },
+  data() {
+    let checkPhoneNum = (rule, value, callback) => {
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback("");
+      } else if (value != undefined && value != "") {
+        return callback();
+      } else if (!patter.test(value)) {
+        return callback("");
+      }
+    };
+    return {
+      pics: 0,
+      filterText: "",
+      DataList: [],
+      list1: true,
+      activeName: "1",
+      checkedObj: {},
+      dataObj: {},
+      Treedata: [],
+      TreedataList: [],
+      treedataList: [],
+      checkedkey: [],
+      checkedListkey: [],
+      defaultProps: {
+        children: [],
+        label: "proName",
+      },
+      isCollapsed: true, // 榛樿涓烘姌鍙犵姸鎬�
+      keys: "",
+      dataListAll: [],
+      // 澶氶�夋
+      priceNow: "",
+      checkAll: false,
+      isIndeterminate: true,
+      // 閬僵灞�
+      loading: false,
+      radio: 3,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 浣撴濂楅琛ㄦ牸鏁版嵁
+      packageList: [],
+      // 濂楅閫変腑鐨勭埗椤�
+      allpackageList: [],
+      // 宸查��
+      newproName: [],
+      // 鎵�鏈変綋妫�椤圭洰路
+      allList: [],
+      treeList: [],
+      // 鎵�鏈夊椁愭暟鎹�
+      // allpackage:[],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      Seachopen: false,
+      pacId: "",
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        // pageNum: 1,
+        // pageSize: 10,
+        zhmc: null,
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      forms: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        deleted: [
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
+        ],
+        pacName: [
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
+        ],
+        pacStatus: [
+          { required: true, validator: checkPhoneNum, trigger: "change" },
+        ],
+        // categoryId: [
+        //   { required: true, validator: checkPhoneNum, trigger: "change" },
+        // ],
+        keywords: [
+          { required: true, validator: checkPhoneNum, trigger: "change" },
+        ],
+        isOnSale: [
+          { required: true, validator: checkPhoneNum, trigger: "change" },
+        ],
+        sort: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
+        retailPrice: [
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
+        ],
+        counterPrice: [
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
+        ],
+      },
+    };
+  },
+  watch: {
+    filterText(val) {
+      this.$refs.tree.filter(val);
+    },
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    filterNode(value, data) {
+      if (!value) return true;
+      // return data.proName.indexOf(value) !== -1;
+      if (data.proName.indexOf(value) !== -1) {
+        return data.proName.indexOf(value) !== -1;
+      } else {
+        return data.proEngName.indexOf(value) !== -1;
+      }
+    },
+    /** 鏌ヨ浣撴濂楅鍒楄〃 */
+    getList() {
+      this.loading = true;
+      getZhList(this.queryParams).then((response) => {
+        if (response.data) {
+          // response.data.forEach((item, index) => {
+          //   item.newID =
+          //     (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
+          //     index +
+          //     1;
+          // });
+          // this.total = response.total;
+          this.packageList = response.data;
+        }
+
+        this.loading = false;
+      });
+    },
+
+    sel(val) {
+      let id = val;
+      this.keys = "";
+      id.forEach((item) => {
+        this.keys += item + ",";
+      });
+    },
+
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.Seachopen = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        zhmc: null,
+        xh: null,
+      };
+      this.resetForm("form");
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+
+    handlePackage() {
+      this.$refs.aaa.open = true;
+      this.$refs.aaa.getList();
+      this.$refs.aaa.title = "濂楅瀛楀吀";
+    },
+    handleChanges(param1) {
+      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;
+      }
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      if (!selection[0]) {
+        return;
+      }
+      this.forms = selection[0];
+      this.ids = selection.map((item) => item.id);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "浣撴濂楅淇℃伅缁存姢";
+      this.DataList = [];
+      this.checkedkey = [];
+      this.checkedListkey = [];
+      this.getDataList();
+    },
+
+    handleUp() {
+      this.title = "浣撴濂楅淇℃伅缁存姢";
+      this.open = true;
+      // getPacTjProjectList().then((response) => {
+      //   this.allList = response.data;
+      //   this.loading = false;
+      // });
+        this.form =  this.forms;
+        
+        this.DataList = [];
+        // this.pics = 0;
+        this.checkedkey = [];
+        this.checkedListkey = [];
+        this.getDataList();
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.title = "浣撴濂楅淇℃伅缁存姢";
+      this.open = true;
+      this.form = row;
+      this.DataList = [];
+      this.checkedkey = [];
+      this.checkedListkey = [];
+      // row.zhxmglpros.forEach(item => {
+      //   this.checkedkey.push(item.proId);
+      // })
+      
+      this.getDataList();
+    },
+
+    //  // 榛樿鎺ュ彈鍥涗釜鍊� { 褰撳墠琛岀殑鍊�, 褰撳墠鍒楃殑鍊�, 琛岀殑涓嬫爣, 鍒楃殑涓嬫爣 }
+    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+      let fields = ["propinName"];
+      let cellValue = row[column.property];
+      if (cellValue && fields.includes(column.property)) {
+        let prevRow = this.DataList[rowIndex - 1];
+        let nextRow = this.DataList[rowIndex + 1];
+        if (prevRow && prevRow[column.property] === cellValue) {
+          return { rowspan: 0, colspan: 0 };
+        } else {
+          let countRowspan = 1;
+          while (nextRow && nextRow[column.property] === cellValue) {
+            nextRow = this.DataList[++countRowspan + rowIndex];
+          }
+          if (countRowspan > 1) {
+            return { rowspan: countRowspan, colspan: 1 };
+          }
+        }
+      }
+    },
+    renderContent(h, { node, data, store }) {
+      return (
+        <span class="custom-tree-node">
+          <span>{node.label}</span>
+          <span>({data.proPrice}鍏�)</span>
+        </span>
+      );
+    },
+    getDataList() {
+      this.loading = true;
+      getProParentIdDxList().then((response) => {
+        this.Treedata = response.data.list;
+        if (this.form.zhxmglpros) {
+          this.form.zhxmglpros.forEach((item) => {
+            this.Treedata.forEach((item1) => {
+              if (item.proId == item1.proId) {
+                this.checkedkey.push(item1.proId);
+                let proId = item1.proId;
+                getProSonDxList(proId).then((res) => {
+                  this.TreedataList = res.data.list;
+                  this.TreedataList.forEach((item2) => {
+                    item2.disabled = true;
+                    this.checkedListkey.push(item2.proId);
+                    this.DataList.push(item2);
+                    if (this.DataList.length != 0) {
+                      this.DataList.forEach((item) => {
+                        if (item.proParentId == item1.proId) {
+                          item.propinName = item1.proName;
+                          item.propinPrice = item1.proPrice;
+                        }
+                      });
+                      this.pics = 0;
+                      this.DataList.forEach((item) => {
+                        this.pics += item.proPrice;
+                      });
+                    }
+                  });
+                });
+              }
+            });
+          });
+        } else {
+          this.checkedkey.push(this.Treedata[0].proId);
+          let proId = this.Treedata[0].proId;
+          getProSonDxList(proId).then((res) => {
+            this.TreedataList = res.data.list;
+            this.TreedataList.forEach((item) => {
+              item.disabled = true;
+              this.checkedListkey.push(item.proId);
+              this.DataList.push(item);
+              this.DataList.forEach((item) => {
+                item.propinName = this.Treedata[0].proName;
+                item.propinPrice = this.Treedata[0].proPrice;
+              });
+              this.pics = 0;
+              this.DataList.forEach((item) => {
+                this.pics += item.proPrice;
+              });
+            });
+          });
+        }
+        this.loading = false;
+      });
+    },
+    handleCurrentChecked(data, checked, checkedNodes) {
+      this.dataObj = data;
+      this.checkedObj = checked;
+      if (checked == true) {
+        // this.$refs.tree.setCheckedKeys([data.proId]);
+        let proId = data.proId;
+        getProSonDxList(proId).then((res) => {
+          this.TreedataList = res.data.list;
+          this.TreedataList.forEach((item) => {
+            item.disabled = true;
+            this.checkedListkey.push(item.proId);
+            this.DataList.push(item);
+            this.spliceData();
+            this.pics = 0;
+            this.DataList.forEach((item1) => {
+              this.pics += item1.proPrice;
+              if (item1.proParentId == data.proId) {
+                item1.propinName = data.proName;
+                item1.propinPrice = this.dataObj.proPrice;
+              }
+            });
+          });
+          this.TotalPrice1 = 0;
+          this.pics = 0;
+          if (this.DataList.length != 0) {
+            this.list1 = false;
+            this.DataList.forEach((item) => {
+              this.TotalPrice1 = item.proPrice + this.TotalPrice1;
+              this.pics += item.proPrice;
+            });
+          }
+        });
+      } else if (checked == false) {
+        let proId = data.proId;
+        getProSonDxList(proId).then((res) => {
+          this.TreedataList = res.data.list;
+          this.TreedataList.forEach((item) => {
+            item.disabled = true;
+          });
+          this.checkedListkey = [];
+          this.DataList.forEach((item, index) => {
+            if (item.proParentId == this.dataObj.proId) {
+              this.DataList.splice(index, this.TreedataList.length);
+            }
+          });
+          this.pics = 0;
+          this.DataList.forEach((item, index) => {
+            this.pics += item.proPrice;
+          });
+        });
+      }
+    },
+
+    spliceData() {
+      for (var i = 0; i < this.DataList.length; i++) {
+        for (var j = i + 1; j < this.DataList.length; j++) {
+          if (this.DataList[i].proId == this.DataList[j].proId) {
+            //濡傛灉绗竴涓瓑浜庣浜屼釜锛宻plice鏂规硶鍒犻櫎绗簩涓�
+            this.DataList.splice(j, 1);
+            j--;
+          }
+        }
+      }
+      return this.DataList;
+    },
+
+    // 鐐瑰嚮鑾峰彇姣忎釜鏍戣妭鐐�
+    handleCurrentChecked1(data, checked, checkedNodes) {
+      if (checked == false) {
+        this.DataList.forEach((item, index) => {
+          if (item.proId == data.proId) {
+            this.DataList.splice(index, 1);
+            this.TotalPrice1 = 0;
+            this.pics = 0;
+            this.DataList.forEach((item1) => {
+              this.pics += item1.proPrice;
+              // this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
+            });
+          }
+        });
+      } else if (checked == true) {
+        this.DataList.push(data);
+        this.pics = 0;
+        this.DataList.forEach((item1) => {
+          this.pics += item1.proPrice;
+          if (item1.proParentId == this.dataObj.proId) {
+            item1.propinName = this.dataObj.proName;
+            item1.propinPrice = this.dataObj.proPrice;
+          }
+        });
+        this.spliceData();
+        this.TotalPrice1 = 0;
+        this.pics = 0;
+        this.DataList.forEach((item1) => {
+          // this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
+          this.pics += item1.proPrice;
+        });
+      }
+    },
+
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDeletes(row) {
+      this.DataList.forEach((item, index) => {
+        if (item.proParentId == row.proParentId) {
+          this.DataList.splice(index, 1);
+          this.TotalPrice1 = 0;
+          this.DataList.forEach((item1) => {
+            this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
+          });
+        }
+      });
+
+      // this.$refs.trees.setCheckedKeys([]);
+    },
+
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      if (this.form.zhmc) {
+        this.form.zhxmglpros = [];
+        if (this.DataList.length != 0) {
+          this.treeList = JSON.parse(JSON.stringify(this.DataList));
+          for (var i = 0; i < this.treeList.length; i++) {
+            for (var j = i + 1; j < this.treeList.length; j++) {
+              if (
+                this.treeList[i].proParentId == this.treeList[j].proParentId
+              ) {
+                this.treeList.splice(j, 1);
+                j--;
+              }
+            }
+          }
+          this.treeList.forEach((item) => {
+            this.form.zhxmglpros.push({
+              // id: 0,
+              // proName: item.propinName,
+              // allSonProName: item.proName + ",",
+              // proPrice: item.propinPrice,
+              // priceNow: item.propinPrice,
+              proId: item.proParentId,
+            });
+          });
+        }
+        this.$refs["form"].validate((valid) => {
+          if (valid) {
+            if (this.form.id != null) {
+              modifyzhxm(this.form).then((response) => {
+                this.$modal.msgSuccess("淇敼鎴愬姛");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addzhxm(this.form).then((response) => {
+                this.$modal.msgSuccess("鏂板鎴愬姛");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      } else {
+        Message.warning("璇峰厛濉啓濂楅鍚嶇О");
+      }
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const pacIds = row.id || this.ids;
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎浣撴濂楅缂栧彿涓�"' + pacIds + '"鐨勬暟鎹」锛�')
+        .then(function () {
+          return delzhxm(pacIds);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        })
+        .catch(() => {});
+    },
+
+    /** 鍒嗛厤濂楅鍐呴」鐩搷浣� */
+    handleProject: function (row) {
+      const pacId = row.pacId;
+      this.$router.push("/system/user-auth/role/" + pacId);
+    },
+
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download(
+        "system/package/export",
+        {
+          ...this.queryParams,
+        },
+        `package_${new Date().getTime()}.xlsx`
+      );
+    },
+    // 濂楅璇︽儏
+    // handleSeach(row) {
+    //   this.Seachopen = true;
+    //   this.loading = true;
+    //   const pacId = row.pacId;
+    //   this.pacId = row.pacId
+    //   let data = {
+    //     pacId: pacId,
+    //   };
+    //   getAllPackage(data).then((response) => {
+    //     this.allpackageList = response.data.tjProjectList;
+    //     this.loading = false;
+    //     let arr = [];
+    //     this.allpackageList.forEach((item) => {
+    //       arr.push(item.proName);
+    //     });
+    //     this.newproName = arr;
+    //   });
+
+    //   getAllPackageList().then((response) => {
+    //     this.allList = response.data;
+    //     this.loading = false;
+    //   });
+    // },
+    // // 鍏ㄩ��
+    // handleCheckAllChange(val) {
+    //   this.newproName = val ? this.allList : [];
+    //   this.isIndeterminate = false;
+    // },
+
+    // handleCheckedCitiesChange(value) {
+    //   let checkedCount = value.length;
+    //   this.checkAll = checkedCount === this.allList.length;
+    //   this.isIndeterminate =
+    //     checkedCount > 0 && checkedCount < this.allList.length;
+    // },
+
+    submitcheckbox() {
+      let _this = this;
+      let proIds = [];
+      this.allList.forEach((item) => {
+        _this.newproName.forEach((item1) => {
+          if (item.proName == item1) {
+            proIds.push(item.proId);
+          }
+        });
+      });
+      let data = {
+        pacid: Number(this.pacId),
+        proIds: proIds.toString(),
+      };
+
+      updateProject(data).then((response) => {
+        this.$modal.msgSuccess("鎴愬姛");
+        this.Seachopen = false;
+      });
+    },
+  },
+};
+</script>
+
+
+<style>
+.el-tooltip__popper {
+  max-width: 800px;
+}
+
+.showInline {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  display: -webkit-box;
+  -webkit-line-clamp: 2;
+  line-clamp: 2;
+  -webkit-box-orient: vertical;
+}
+
+.pag {
+  width: 100%;
+  display: flex;
+  justify-content: center;
+}
+
+.pag1 {
+  width: 30%;
+}
+
+.dialog-footer {
+  position: absolute;
+  left: 40%;
+  bottom: 2%;
+}
+.tab3 {
+  max-height: 400px;
+  overflow-y: auto;
+  border: 1px solid #d9d9d9;
+}
+/* .custom-tree-node {
+    flex: 1;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    font-size: 14px;
+    padding-right: 8px;
+  } */
+</style>
\ No newline at end of file
diff --git a/vue.config.js b/vue.config.js
index e6d5c1c..a9af51d 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -53,7 +53,7 @@
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         // target: `https://ltpeis.xaltjdkj.cn:5801/`,
-        target: `http://192.168.1.3:5011`,
+        target: `http://192.168.1.113:5011`,
         // // target: `http://192.168.0.99:8080/ltkj-admin`,
         // target: `https://ltpeis.xaltjdkj.cn:5011/ltkj-admin`,
         // target: `http://10.168.0.9:5011`,

--
Gitblit v1.8.0