| | |
| | | <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 |
| | |
| | | <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"> |
| | |
| | | </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> |
| | |
| | | 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> |
| | |
| | | <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" /> |
| | |
| | | import { listCategory } from "@/api/mall/category"; |
| | | import { listKeyword } from "@/api/mall/keyword"; |
| | | import { |
| | | getPacList, |
| | | getPacInFo, |
| | | listPackage, |
| | | getPackage, |
| | | delPackage, |
| | |
| | | updateStatus, |
| | | getAllList, |
| | | updateProject, |
| | | getPacTjProjectList |
| | | } from "@/api/system/package"; |
| | | import { Message } from "element-ui"; |
| | | export default { |
| | |
| | | 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, |
| | |
| | | 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" }, |
| | | ], |
| | |
| | | this.getCategory(); |
| | | }, |
| | | methods: { |
| | | toggleCollapse() { |
| | | this.isCollapsed = !this.isCollapsed; // 点击按钮时切换isCollapsed的值 |
| | | }, |
| | | /** 查询体检套餐列表 */ |
| | | 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 + |
| | |
| | | }); |
| | | }, |
| | | sel(val) { |
| | | let id = val |
| | | let id = val; |
| | | this.keys = ""; |
| | | id.forEach((item) => { |
| | | this.keys += item + "," |
| | | this.keys += item + ","; |
| | | }); |
| | | }, |
| | | /** 查询类目列表 */ |
| | |
| | | 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() { |
| | |
| | | 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({ |
| | |
| | | |
| | | // 是否启用 |
| | | handleStatusChange(row) { |
| | | |
| | | let data = { |
| | | pacId: row.pacId, |
| | | pacStatus: row.pacStatus, |
| | | } |
| | | }; |
| | | let text = row.pacStatus === "0" ? "启用" : "停用"; |
| | | this.$confirm("确认要" + text + row.pacName + "套餐吗?") |
| | | .then(function () { |
| | |
| | | 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 { |
| | |
| | | // } |
| | | 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({ |
| | |
| | | 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() { |