| | |
| | | <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" |
| | | @submit.native.prevent> |
| | | <el-form-item label="单位名称" prop="cnName"> |
| | | <el-input ref="inputName" v-model="queryParams.cnName" placeholder="请输入单位名称" clearable |
| | | @keyup.enter.native="handleQuery" /> |
| | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="7" :xs="24"> |
| | | <div style="padding: 0 20px"> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true"> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true" @submit.native.prevent> |
| | | <el-form-item label="套餐名称" prop="dwDeptName"> |
| | | <el-input v-model="form.dwDeptName" placeholder="请输入套餐名称" /> |
| | | </el-form-item> |
| | |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="17" :xs="24"> |
| | | <el-form ref="form" :model="forms" :rules="rules" label-width="78px" :inline="true"> |
| | | <el-form ref="form" :model="forms" :rules="rules" label-width="78px" :inline="true" @submit.native.prevent> |
| | | <el-form-item label="分组名称" prop="groupingName"> |
| | | <el-input v-model="forms.groupingName" placeholder="请输入分组名称" style="width: 130px" |
| | | @focus="changegroupingName" /> |
| | |
| | | |
| | | <!-- 套餐 --> |
| | | <div> |
| | | <el-dialog :title="title" :visible.sync="openss" width="1400px" append-to-body :close-on-click-modal="false"> |
| | | <el-dialog :title="title" :visible.sync="openss" width="1400px" custom-class="custom-dialog" append-to-body |
| | | :close-on-click-modal="false"> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="8" :xs="24"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px" |
| | | @submit.native.prevent> |
| | | <el-form-item label="套餐名称" prop="pacName"> |
| | | <el-input ref="inputName" v-model="queryParams.pacName" placeholder="请输入套餐名称" clearable |
| | | @keyup.enter.native="handleSearch" style="width: 140px" /> |
| | |
| | | </el-col> |
| | | <el-col :span="6" :xs="24"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px" |
| | | style="height: 35px"> |
| | | style="height: 35px" @submit.native.prevent> |
| | | <el-form-item label="合计" prop="price"> |
| | | <el-input ref="inputName" v-model="queryParams.price" placeholder="合计" clearable style="width: 140px" /> |
| | | </el-form-item> |
| | |
| | | </div> --> |
| | | <!-- @row-dblclick="dbclick" --> |
| | | <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"> |
| | | <el-table-column label="项目名称/价格/元" align="center" prop="proName"> |
| | | <el-table-column label="项目名称" align="center" prop="proName"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.proName + "/" + scope.row.proPrice }} |
| | | {{ scope.row.proName }} |
| | | </template> |
| | | </el-table-column> |
| | | |
| | |
| | | </el-col> |
| | | <el-col :span="8" :xs="24"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" |
| | | label-width="68px"> |
| | | label-width="68px" @submit.native.prevent> |
| | | <el-form-item label="项目名称" prop="proName"> |
| | | <el-input ref="inputName" v-model="queryParams.proName" placeholder="请输入项目名称" clearable |
| | | @keyup.enter.native="handleSearchFor" style="width: 140px" /> |
| | |
| | | <el-dialog :title="title" :visible.sync="openOne" width="1400px" append-to-body :close-on-click-modal="false"> |
| | | <el-row :gutter="24" v-if="!isTableVisible"> |
| | | |
| | | <el-col :span="11" :xs="24"> |
| | | <el-col :span="15" :xs="24"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px" |
| | | style="height: 35px"> |
| | | style="height: 35px" @submit.native.prevent> |
| | | <el-form-item label="原价"> |
| | | <el-input ref="inputName" v-model="queryParams.price" placeholder="合计" clearable style="width: 140px" /> |
| | | </el-form-item> |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"> |
| | | <el-table-column label="项目名称/价格/元" align="center" prop="proName"> |
| | | <el-table-column label="项目名称" align="center" prop="proName" width="528"> |
| | | |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.proName + "/" + scope.row.proPrice }} |
| | | {{ scope.row.proName }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="原价" align="center" prop="proPrice"></el-table-column> |
| | | <el-table-column label="折扣"> |
| | | <el-table-column label="原价" align="center" prop="proPrice" width="74"></el-table-column> |
| | | <el-table-column label="折扣" width="81"> |
| | | <template slot-scope="scope"> |
| | | <!-- 只输入纯数字折扣 --> |
| | | <el-input v-model.number="scope.row.limits" @input="validateDiscount(scope.row)" placeholder="输入折扣" |
| | |
| | | </el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="现价" align="center" prop="ysPrice"></el-table-column> |
| | | <el-table-column label="操作" align="center" width="68"> |
| | | <el-table-column label="现价" align="center" prop="ysPrice" width="74"></el-table-column> |
| | | <el-table-column label="操作" align="center" width="70"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-delete" |
| | | @click="handledbelete(scope.row)">删除</el-button> |
| | |
| | | 认</el-button> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="11" :xs="24"> |
| | | <el-col :span="7" :xs="24"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" |
| | | label-width="68px"> |
| | | label-width="68px" @submit.native.prevent> |
| | | <el-form-item label="项目名称" prop="proName"> |
| | | <el-input ref="inputName" v-model="queryParams.proName" placeholder="请输入项目名称" clearable |
| | | @keyup.enter.native="handleSearchFor" style="width: 140px" /> |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" |
| | | height="478" style="width: 70%"> |
| | | height="478" style="width: 100%"> |
| | | <el-table-column type="selection" width="40px" align="center" /> |
| | | <el-table-column label="项目名称" align="center" prop="proName" /> |
| | | <el-table-column label="项目价格/元" align="center" prop="proPrice" /> |
| | |
| | | </el-row> |
| | | <!-- -=----------------------------------------------------- --> |
| | | <el-row :gutter="24" v-else> |
| | | <el-col :span="8" :xs="24"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> |
| | | <el-col :span="6" :xs="24"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px" |
| | | @submit.native.prevent> |
| | | <el-form-item label="套餐名称" prop="pacName"> |
| | | <el-input ref="inputName" v-model="queryParams.pacName" placeholder="请输入套餐名称" clearable |
| | | @keyup.enter.native="handleSearch" style="width: 140px" /> |
| | |
| | | <!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> --> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne" |
| | | height="478"> |
| | | <el-table-column type="selection" width="40px" align="center" /> |
| | | <el-table-column label="序号" align="center" prop="newID" width="50px" /> |
| | | <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne" height="478"> |
| | | <el-table-column label="序号" align="center" prop="newId" width="50px" /> |
| | | <el-table-column label="套餐名称/价格/元" align="center" prop="pacName"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.pacName + "/" + scope.row.price }} |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | <el-col :span="6" :xs="24"> |
| | | <el-col :span="8" :xs="24"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px" |
| | | style="height: 35px"> |
| | | style="height: 35px" @submit.native.prevent> |
| | | <el-form-item label="合计" prop="price"> |
| | | <el-input ref="inputName" v-model="queryParams.price" placeholder="合计" clearable style="width: 140px" /> |
| | | </el-form-item> |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"> |
| | | <el-table-column label="项目名称/价格/元" align="center" prop="proName"> |
| | | <el-table-column label="项目名称" align="center" prop="proName" width="170"> |
| | | |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.proName + "/" + scope.row.proPrice }} |
| | | {{ scope.row.proName }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="原价" align="center" prop="proPrice"></el-table-column> |
| | |
| | | </el-col> |
| | | <el-col :span="8" :xs="24"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" |
| | | label-width="68px"> |
| | | label-width="68px" @submit.native.prevent> |
| | | <el-form-item label="项目名称" prop="proName"> |
| | | <el-input ref="inputName" v-model="queryParams.proName" placeholder="请输入项目名称" clearable |
| | | @keyup.enter.native="handleSearchFor" style="width: 140px" /> |
| | |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearchFor">搜索</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" |
| | | height="478" style="width: 70%"> |
| | | <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" height="478"> |
| | | <el-table-column type="selection" width="40px" align="center" /> |
| | | <el-table-column label="项目名称" align="center" prop="proName" width="130" /> |
| | | <el-table-column label="项目名称" align="center" prop="proName" width="288" /> |
| | | <el-table-column label="项目价格/元" align="center" prop="proPrice" width="100" /> |
| | | </el-table> |
| | | </el-col> |
| | |
| | | <!-- 添加或修改体检单位信息维护对话框 --> |
| | | <div class="dia"> |
| | | <el-dialog :title="title" :visible.sync="open" width="1340px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="106px" :inline="true"> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="106px" :inline="true" @submit.native.prevent> |
| | | <el-form-item label="单位名称" prop="cnName"> |
| | | <el-input v-model="form.cnName" placeholder="请输入中文名称" style="width: 520px" /> |
| | | </el-form-item> |
| | |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> --> |
| | |
| | | } |
| | | getProjectList().then((response) => { |
| | | this.Treedata = response.data; |
| | | |
| | | }); |
| | | }, |
| | | |
| | | getpro() { |
| | | getProjectList().then((response) => { |
| | | this.Treedata = response.data; |
| | | }); |
| | | }, |
| | | handleSearch() { |
| | | if (this.queryParams.pacName) { |
| | | getPackageList(this.queryParams.pacName).then((response) => { |
| | |
| | | }, |
| | | handleSearchFor() { |
| | | getProjectList(this.queryParams.proName).then((response) => { |
| | | this.Treedata = response.data; |
| | | |
| | | response.data.forEach((item, index) => { |
| | | item.newID = |
| | | (this.queryParams.pageNum - 1) * this.queryParams.pageSize + |
| | | index + |
| | | 1; |
| | | }); |
| | | this.Treedata = response.data; |
| | | }); |
| | | }, |
| | | // 单项数据获取 |
| | |
| | | } |
| | | }, |
| | | resetright() { |
| | | if (this.dataList.length == 0) { |
| | | return; // 如果数据列表为空,直接返回 |
| | | } else { |
| | | this.queryParams.price = 0; // 初始化总价 |
| | | this.queryParams.xianprice = 0; // 初始化现价 |
| | | this.youhui = 0; // 初始化优惠 |
| | | if (this.dataList.length == 0) { |
| | | return; // 如果数据列表为空,直接返回 |
| | | } else { |
| | | this.queryParams.price = 0; // 初始化总价 |
| | | this.queryParams.xianprice = 0; // 初始化现价 |
| | | this.youhui = 0; // 初始化优惠 |
| | | |
| | | const newItemsToAdd = []; // 用于存储新需要添加的项目 |
| | | const newItemsToAdd = []; // 用于存储新需要添加的项目 |
| | | |
| | | this.dataList.forEach((item) => { |
| | | this.$refs.tre.toggleRowSelection(item, false); // 取消选中状态 |
| | | // 使用 $set 确保响应性 |
| | | this.$set(item, 'limits', 10); // 设置限制数量 |
| | | this.$set(item, 'ysPrice', item.proPrice); // 设置现价为原价 |
| | | this.dataList.forEach((item) => { |
| | | this.$refs.tre.toggleRowSelection(item, false); // 取消选中状态 |
| | | // 使用 $set 确保响应性 |
| | | this.$set(item, 'limits', 10); // 设置限制数量 |
| | | this.$set(item, 'ysPrice', item.proPrice); // 设置现价为原价 |
| | | |
| | | // 检查是否已经存在相同的项目 |
| | | const existingItem = this.OnenewpacName.find(existing => existing.proId === item.proId); |
| | | if (!existingItem) { |
| | | newItemsToAdd.push(item); // 如果不存在相同项目,则添加到新数组 |
| | | this.updateProPrice(item); // 更新单个项目的价格 |
| | | } |
| | | }); |
| | | // 检查是否已经存在相同的项目 |
| | | const existingItem = this.OnenewpacName.find(existing => existing.proId === item.proId); |
| | | if (!existingItem) { |
| | | newItemsToAdd.push(item); // 如果不存在相同项目,则添加到新数组 |
| | | this.updateProPrice(item); // 更新单个项目的价格 |
| | | } |
| | | }); |
| | | |
| | | // 添加新项目到 OnenewpacName |
| | | this.OnenewpacName.push(...newItemsToAdd); |
| | | // 添加新项目到 OnenewpacName |
| | | this.OnenewpacName.push(...newItemsToAdd); |
| | | |
| | | // 删除重复项目,这里我们只需处理新添加的项目和原有项目之间的重复 |
| | | for (let i = this.OnenewpacName.length - newItemsToAdd.length; i < this.OnenewpacName.length - 1; i++) { |
| | | for (let j = i + 1; j < this.OnenewpacName.length; j++) { |
| | | if (this.OnenewpacName[i].proId === this.OnenewpacName[j].proId) { |
| | | this.OnenewpacName.splice(j, 1); // 删除重复的项目 |
| | | j--; // 因为删除了一个元素,当前的j要减1 |
| | | // 删除重复项目,这里我们只需处理新添加的项目和原有项目之间的重复 |
| | | for (let i = this.OnenewpacName.length - newItemsToAdd.length; i < this.OnenewpacName.length - 1; i++) { |
| | | for (let j = i + 1; j < this.OnenewpacName.length; j++) { |
| | | if (this.OnenewpacName[i].proId === this.OnenewpacName[j].proId) { |
| | | this.OnenewpacName.splice(j, 1); // 删除重复的项目 |
| | | j--; // 因为删除了一个元素,当前的j要减1 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | this.queryParams.price = 0 |
| | | this.queryParams.xianprice = 0 |
| | | // 重新计算总价和现价 |
| | | this.OnenewpacName.forEach((item) => { |
| | | this.queryParams.price += item.proPrice; // 累加原价 |
| | | this.queryParams.xianprice += item.ysPrice || 0; // 累加现价,如果ysPrice为undefined则累加0 |
| | | }); |
| | | this.queryParams.price = 0 |
| | | this.queryParams.xianprice = 0 |
| | | // 重新计算总价和现价 |
| | | this.OnenewpacName.forEach((item) => { |
| | | this.queryParams.price += item.proPrice; // 累加原价 |
| | | this.queryParams.xianprice += item.ysPrice || 0; // 累加现价,如果ysPrice为undefined则累加0 |
| | | }); |
| | | |
| | | // 计算优惠,这里假设优惠是现价与原价的差额百分比 |
| | | this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10; |
| | | } |
| | | }, |
| | | // 计算优惠,这里假设优惠是现价与原价的差额百分比 |
| | | this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10; |
| | | } |
| | | }, |
| | | handledbelete(row) { |
| | | this.queryParams.price = 0; |
| | | this.queryParams.xianprice = 0; // 初始化现价 |
| | |
| | | width: 50px; |
| | | height: 100px; |
| | | } |
| | | |
| | | ::v-deep .el-dialog__body { |
| | | padding: 5px 30px; |
| | | } |
| | | |
| | | .custom-dialog ::v-deep .el-dialog__wrapper { |
| | | height: 1400px; |
| | | /* 设置弹出框的高度 */ |
| | | overflow-y: auto; |
| | | /* 超过最大高度时出现滚动条 */ |
| | | } |
| | | </style> |