From d10c7c728234b5a9098b7bd5bb7a914a14e33c20 Mon Sep 17 00:00:00 2001 From: su1124 <1583764726@qq.com> Date: 星期五, 29 十二月 2023 18:37:28 +0800 Subject: [PATCH] su --- src/views/system/package/index.vue | 549 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 442 insertions(+), 107 deletions(-) diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue index b1d75ca..d6f3f0f 100644 --- a/src/views/system/package/index.vue +++ b/src/views/system/package/index.vue @@ -1,41 +1,106 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + v-show="showSearch" + label-width="68px" + > <el-form-item label="濂楅鍚嶇О" prop="pacName"> - <el-input v-model="queryParams.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" clearable @keyup.enter.native="handleQuery" /> + <el-input + v-model="queryParams.pacName" + placeholder="璇疯緭鍏ュ椁愬悕绉�" + clearable + @keyup.enter.native="handleQuery" + /> </el-form-item> <el-form-item label="濂楅鎻忚堪" prop="pacRemark"> - <el-input v-model="queryParams.pacRemark" placeholder="璇疯緭鍏ュ椁愭弿杩�" clearable @keyup.enter.native="handleQuery" /> + <el-input + v-model="queryParams.pacRemark" + placeholder="璇疯緭鍏ュ椁愭弿杩�" + clearable + @keyup.enter.native="handleQuery" + /> </el-form-item> <el-form-item label="濂楅鍒嗙被" prop="categoryId"> - <el-select v-model="queryParams.categoryId" placeholder="璇烽�夋嫨鐘舵��" style="width: 200px" filterable clearable> - <el-option v-for="dict in categoryList" :key="dict.id" :label="dict.name" :value="dict.id"></el-option> + <el-select + v-model="queryParams.categoryId" + placeholder="璇烽�夋嫨鐘舵��" + style="width: 200px" + filterable + clearable + > + <el-option + v-for="dict in categoryList" + :key="dict.id" + :label="dict.name" + :value="dict.id" + ></el-option> </el-select> </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-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-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-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-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-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> + <right-toolbar + :showSearch.sync="showSearch" + @queryTable="getList" + ></right-toolbar> </el-row> <!-- @@ -43,13 +108,50 @@ 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 fixed type="selection" width="40" align="center" :show-overflow-tooltip="true" /> - <el-table-column label="搴忓彿" align="center" width="50" prop="newID" fixed /> + <el-table + v-loading="loading" + style="width: 100%" + :data="packageList" + @selection-change="handleSelectionChange" + border + > + <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="濂楅鍚嶇О" align="center" prop="pacName" width="150px" fixed /> - <el-table-column label="鍗曢」鍒楄〃" align="center" prop="allProName" width="1200px"> + <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 label="椤圭洰鏄庣粏" @@ -58,7 +160,12 @@ :show-overflow-tooltip="true" > </el-table-column>--> - <el-table-column label="濂楅鎻忚堪" align="center" :show-overflow-tooltip="true" width="120px"> + <el-table-column + label="濂楅鎻忚堪" + align="center" + :show-overflow-tooltip="true" + width="120px" + > <template slot-scope="scope"> <div class="showInline">{{ scope.row.pacRemark }}</div> </template> @@ -74,14 +181,26 @@ <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"> + + <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"> - <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isOnSale" /> + <dict-tag + :options="dict.type.sys_yes_no" + :value="scope.row.isOnSale" + /> </template> </el-table-column> <!-- <el-table-column @@ -91,22 +210,70 @@ align="center" prop="detail" ></el-table-column> --> - <el-table-column label="鎺掑簭" width="50px" align="center" prop="sort"></el-table-column> - <el-table-column label="灏忕▼搴忎环鏍�" width="90px" align="center" prop="retailPrice"></el-table-column> - <el-table-column label="鍘熶环" width="90px" align="center" prop="counterPrice"></el-table-column> - <el-table-column label="宸插敭鏁伴噺" width="90px" align="center" prop="saleNum"></el-table-column> - <el-table-column label="鐘舵��" align="center" prop="pacStatus" fixed="right" width="100px"> + <el-table-column + label="鎺掑簭" + width="50px" + align="center" + prop="sort" + ></el-table-column> + <el-table-column + label="灏忕▼搴忎环鏍�" + width="90px" + align="center" + prop="retailPrice" + ></el-table-column> + <el-table-column + label="鍘熶环" + width="90px" + align="center" + prop="counterPrice" + ></el-table-column> + <el-table-column + label="宸插敭鏁伴噺" + width="90px" + align="center" + prop="saleNum" + ></el-table-column> + <el-table-column + label="鐘舵��" + align="center" + prop="pacStatus" + fixed="right" + width="100px" + > <template slot-scope="scope"> - <el-switch v-model="scope.row.pacStatus" active-value="0" inactive-value="1" - @change="handleStatusChange(scope.row)"></el-switch> + <el-switch + v-model="scope.row.pacStatus" + active-value="0" + inactive-value="1" + @change="handleStatusChange(scope.row)" + ></el-switch> </template> </el-table-column> - <el-table-column label="鎿嶄綔" align="center" width="80px" fixed="right" class-name="small-padding fixed-width"> + <el-table-column + label="鎿嶄綔" + align="center" + width="80px" + fixed="right" + 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> + <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> <!-- <el-button size="mini" type="text" icon="el-icon-circle-check" @click="handleSeach(scope.row)" v-hasPermi="['system:package:Seach']" title="濂楅璇︽儏"></el-button> --> </template> @@ -115,31 +282,65 @@ <div class="pag"> <div class="pag1"> - <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" @pagination="getList" /> + <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="1000px" append-to-body> - <el-form ref="form" :model="form" :rules="rules" label-width="100px" :inline="true"> + <el-dialog + :title="title" + :visible.sync="open" + width="1000px" + 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: 200px" + /> </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-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label" - :value="dict.value"></el-option> + <el-select + v-model="form.pacStatus" + placeholder="璇烽�夋嫨鐘舵��" + style="width: 200px" + 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> </el-form-item> @@ -149,17 +350,39 @@ placeholder="璇疯緭鍏ュ晢鍝佺被鐩�" style="width: 200px" /> --> - <el-select v-model="form.categoryId" placeholder="璇烽�夋嫨濂楅绫荤洰" style="width: 200px" @change="shangpin" filterable - clearable> - <el-option v-for="item in categoryList" :key="item.id" :label="item.name" :value="item.id"></el-option> + <el-select + v-model="form.categoryId" + placeholder="璇烽�夋嫨濂楅绫荤洰" + style="width: 200px" + @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 - clearable> - <el-option v-for="item in keywordList" :key="item.id" :label="item.keyword" :value="item.id"></el-option> + <el-select + multiple + v-model="form.keywords" + placeholder="璇烽�夋嫨鍏抽敭瀛�" + style="width: 200px" + @change="sel" + filterable + clearable + > + <el-option + v-for="item in keywordList" + :key="item.id" + :label="item.keyword" + :value="item.id" + ></el-option> </el-select> </el-form-item> <el-form-item label="鏄惁涓婃灦" prop="isOnSale"> @@ -167,24 +390,51 @@ <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-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label" - :value="dict.value"></el-option> + <el-select + v-model="form.isOnSale" + placeholder="璇烽�夋嫨鏄惁涓婃灦" + style="width: 200px" + 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: 200px" + /> </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: 200px" + /> </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: 200px" + /> </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-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 @@ -203,32 +453,97 @@ <!-- </div> --> </el-form> - <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-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" /> - <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="180px"> + <el-table-column + label="椤圭洰鍚嶇О" + align="center" + prop="proName" + width="180px" + > <template slot-scope="scope"> - <el-select filterable v-model="scope.row.proName" placeholder="璇烽�夋嫨椤圭洰鍚嶇О" @change="getSelectValue"> - <el-option v-for="(item, index) in allList" :key="index" :label="item.proName" :value="item.proName"> + <el-select + filterable + v-model="scope.row.proName" + placeholder="璇烽�夋嫨椤圭洰鍚嶇О" + @change="getSelectValue" + > + <el-option + v-for="(item, index) in allList" + :key="index" + :label="item.proName" + :value="item.proName" + > </el-option> </el-select> </template> </el-table-column> - <el-table-column label="椤圭洰鏄庣粏" align="center" prop="allSonProName" width="400px" :show-overflow-tooltip="true"> + <el-table-column + label="椤圭洰鏄庣粏" + align="center" + prop="allSonProName" + width="400px" + :show-overflow-tooltip="true" + > </el-table-column> - <el-table-column label="鍘熶环(鍏�)" align="center" prop="proPrice" width="80px" /> - <el-table-column label="鐜颁环(鍏�)" align="center" prop="priceNow" width="80px"> + <el-table-column + label="鍘熶环(鍏�)" + align="center" + prop="proPrice" + width="80px" + /> + <el-table-column + label="鐜颁环(鍏�)" + align="center" + prop="priceNow" + width="80px" + > <template slot-scope="scope"> - <el-input v-model="scope.row.priceNow" autocomplete="off" placeholder="璇疯緭鍏ュ唴瀹�"></el-input> + <el-input + v-model="scope.row.priceNow" + autocomplete="off" + placeholder="璇疯緭鍏ュ唴瀹�" + ></el-input> </template> </el-table-column> - <el-table-column label="鎿嶄綔" fixed="right" align="center" class-name="small-padding fixed-width"> + <el-table-column + label="鎿嶄綔" + fixed="right" + align="center" + class-name="small-padding fixed-width" + > <template slot-scope="scope"> - <el-button size="mini" type="text" icon="el-icon-circle-plus-outline" @click="addmembers(scope.row)" - v-hasPermi="['system:package:edit']" title="鏂板琛�"></el-button> - <el-button size="mini" type="text" icon="el-icon-delete" @click.native.prevent="Delete(scope.$index)" - v-hasPermi="['hosp:consumables:remove']" title="鍒犻櫎"></el-button> + <el-button + size="mini" + type="text" + icon="el-icon-circle-plus-outline" + @click="addmembers(scope.row)" + v-hasPermi="['system:package:edit']" + title="鏂板琛�" + ></el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click.native.prevent="Delete(scope.$index)" + v-hasPermi="['hosp:consumables:remove']" + title="鍒犻櫎" + ></el-button> </template> </el-table-column> </el-table> @@ -281,20 +596,21 @@ 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 { categoryList: [], keys: "", keywordList: [], + dataListAll: [], // 澶氶�夋 priceNow: "", checkAll: false, @@ -357,9 +673,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" }, ], @@ -398,10 +712,10 @@ }); }, sel(val) { - let id = val + let id = val; this.keys = ""; id.forEach((item) => { - this.keys += item + "," + this.keys += item + ","; }); }, /** 鏌ヨ绫荤洰鍒楄〃 */ @@ -445,20 +759,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 +792,15 @@ 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 +817,10 @@ // 鏄惁鍚敤 handleStatusChange(row) { - let data = { pacId: row.pacId, pacStatus: row.pacStatus, - } + }; let text = row.pacStatus === "0" ? "鍚敤" : "鍋滅敤"; this.$confirm("纭瑕�" + text + row.pacName + "濂楅鍚楋紵") .then(function () { @@ -551,6 +862,16 @@ // 鏂板琛� addmembers() { if (this.form.pacName) { + this.loading = true; + 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({ @@ -610,6 +931,20 @@ }); } }); + + 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() { @@ -655,7 +990,7 @@ this.getList(); this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); }) - .catch(() => { }); + .catch(() => {}); }, /** 鍒嗛厤濂楅鍐呴」鐩搷浣� */ -- Gitblit v1.8.0