This commit is contained in:
2026-06-05 10:59:52 +08:00
parent d66e811b5a
commit bb32d92557
@@ -57,7 +57,8 @@ layout("/layouts/platform.html"){
<div class="search-item-label">福利项目:</div> <div class="search-item-label">福利项目:</div>
<div class="search-item-option"> <div class="search-item-option">
<el-select @change="doSearch()" v-model="pageForm.projectId"> <el-select @change="doSearch()" v-model="pageForm.projectId">
<el-option :key="item.value" :label="item.label" :value="item.value" v-for="item in projectSelectOptions"></el-option> <el-option :key="item.value" :label="item.label" :value="item.value"
v-for="item in projectSelectOptions"></el-option>
</el-select> </el-select>
</div> </div>
</div> </div>
@@ -125,7 +126,8 @@ layout("/layouts/platform.html"){
style="width: 100%" style="width: 100%"
v-model="pageForm.units" v-model="pageForm.units"
> >
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in units"></el-option> <el-option :key="item.id" :label="item.name" :value="item.id"
v-for="item in units"></el-option>
</el-select> </el-select>
</div> </div>
</div> </div>
@@ -142,7 +144,8 @@ layout("/layouts/platform.html"){
style="width: 100%" style="width: 100%"
v-model="pageForm.unionGroupId" v-model="pageForm.unionGroupId"
> >
<el-option :key="item.id" :label="item.groupName" :value="item.id" v-for="item in unionGroups"></el-option> <el-option :key="item.id" :label="item.groupName" :value="item.id"
v-for="item in unionGroups"></el-option>
</el-select> </el-select>
</div> </div>
</div> </div>
@@ -150,8 +153,10 @@ layout("/layouts/platform.html"){
<div class="search-item"> <div class="search-item">
<div class="search-item-label">组成科室:</div> <div class="search-item-label">组成科室:</div>
<div class="search-item-option"> <div class="search-item-option">
<el-select clearable filterable placeholder="请选择" style="width: 100%" v-model="pageForm.threeUnitId"> <el-select clearable filterable placeholder="请选择" style="width: 100%"
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in threeUnits"></el-option> v-model="pageForm.threeUnitId">
<el-option :key="item.id" :label="item.name" :value="item.id"
v-for="item in threeUnits"></el-option>
</el-select> </el-select>
</div> </div>
</div> </div>
@@ -197,8 +202,10 @@ layout("/layouts/platform.html"){
<div class="search-item"> <div class="search-item">
<div class="search-item-label">所选福利:</div> <div class="search-item-label">所选福利:</div>
<div class="search-item-option"> <div class="search-item-option">
<el-select clearable placeholder="请选择所选福利" style="width: 100%" v-model="pageForm.optionId"> <el-select clearable placeholder="请选择所选福利" style="width: 100%"
<el-option :label="item.optionName" :value="item.id" v-for="item in welfareOptions"></el-option> v-model="pageForm.optionId">
<el-option :label="item.optionName" :value="item.id"
v-for="item in welfareOptions"></el-option>
</el-select> </el-select>
</div> </div>
</div> </div>
@@ -206,7 +213,8 @@ layout("/layouts/platform.html"){
<div class="search-item"> <div class="search-item">
<div class="search-item-label">快递单号:</div> <div class="search-item-label">快递单号:</div>
<div class="search-item-option"> <div class="search-item-option">
<el-input clearable placeholder="请输入快递单号" v-model="pageForm.courierNumber"></el-input> <el-input clearable placeholder="请输入快递单号"
v-model="pageForm.courierNumber"></el-input>
</div> </div>
</div> </div>
</template> </template>
@@ -226,7 +234,9 @@ layout("/layouts/platform.html"){
<el-radio-button :label="2">未选择</el-radio-button> <el-radio-button :label="2">未选择</el-radio-button>
</el-radio-group> </el-radio-group>
<el-button @click="openAddWelfareList" v-if="${@shiro.hasRole('sysadmin')}" size="small" type="primary">添加人员</el-button> <el-button @click="openAddWelfareList" v-if="${@shiro.hasRole('sysadmin')}" size="small"
type="primary">添加人员
</el-button>
<el-button <el-button
:disabled="!pageForm.projectId" :disabled="!pageForm.projectId"
@@ -362,7 +372,9 @@ layout("/layouts/platform.html"){
<span class="text-primary" v-if="row.isChoose">已选择</span> <span class="text-primary" v-if="row.isChoose">已选择</span>
<span class="text-danger" v-else>未选择</span> <span class="text-danger" v-else>未选择</span>
</template> </template>
<template scope="{row}" v-else-if="column.prop=='gist_list'">{{row.gist_list?row.gist_list:'暂无'}}</template> <template scope="{row}" v-else-if="column.prop=='gist_list'">
{{row.gist_list?row.gist_list:'暂无'}}
</template>
<template scope="{row}" v-else-if="column.prop=='userSign'"> <template scope="{row}" v-else-if="column.prop=='userSign'">
<el-image <el-image
:src="'/signature/getSignData?path=' +row.userSign" :src="'/signature/getSignData?path=' +row.userSign"
@@ -377,12 +389,15 @@ layout("/layouts/platform.html"){
<el-tag type="info" v-else>未核对</el-tag> <el-tag type="info" v-else>未核对</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="快递单号" prop="courierNumber" show-overflow-tooltip v-if="pageFormProjectType===3"> <el-table-column label="快递单号" prop="courierNumber" show-overflow-tooltip
v-if="pageFormProjectType===3">
<template scope="{row}"> <template scope="{row}">
<span @click="viewCourierNumber(row)" class="text-primary" style="cursor: pointer">点击查看</span> <span @click="viewCourierNumber(row)" class="text-primary"
style="cursor: pointer">点击查看</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="收货地址" prop="receiveAddress" show-overflow-tooltip v-if="pageFormProjectType===3"></el-table-column> <el-table-column label="收货地址" prop="receiveAddress" show-overflow-tooltip
v-if="pageFormProjectType===3"></el-table-column>
<el-table-column align="center" fixed="right" header-align="center" label="操作" width="200px"> <el-table-column align="center" fixed="right" header-align="center" label="操作" width="200px">
<template scope="{row}"> <template scope="{row}">
<!-- <el-button @click="doReceive(row)" plain size="mini" type="primary"--> <!-- <el-button @click="doReceive(row)" plain size="mini" type="primary"-->
@@ -397,7 +412,8 @@ layout("/layouts/platform.html"){
> >
编辑 编辑
</el-button> </el-button>
<el-button @click="doDelete(row)" size="mini" type="danger" v-if="judgmentAuthority">删除</el-button> <el-button @click="doDelete(row)" size="mini" type="danger" v-if="judgmentAuthority">删除
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@@ -460,7 +476,8 @@ layout("/layouts/platform.html"){
<el-form-item label="选择地址" style="color: red" v-if="ifReceiveAddress"> <el-form-item label="选择地址" style="color: red" v-if="ifReceiveAddress">
<div style="display: flex; justify-content: space-between; column-gap: 20px"> <div style="display: flex; justify-content: space-between; column-gap: 20px">
<div style="width: calc(100% - 126px)"> <div style="width: calc(100% - 126px)">
<el-select @change="addressChange" filterable placeholder="请选择收货地址" style="width: 100%" v-model="formData.addressId"> <el-select @change="addressChange" filterable placeholder="请选择收货地址" style="width: 100%"
v-model="formData.addressId">
<el-option <el-option
:key="item.id" :key="item.id"
:label="item.name+' '+item.defaultName" :label="item.name+' '+item.defaultName"
@@ -482,7 +499,8 @@ layout("/layouts/platform.html"){
prop="receiveAddress" prop="receiveAddress"
v-if="ifReceiveAddress" v-if="ifReceiveAddress"
> >
<el-input :rows="2" disabled placeholder="选择收货地址后自动读取" type="textarea" v-model="editWelfareData.receiveAddress"></el-input> <el-input :rows="2" disabled placeholder="选择收货地址后自动读取" type="textarea"
v-model="editWelfareData.receiveAddress"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row justify="end" type="flex"> <el-row justify="end" type="flex">
@@ -494,9 +512,11 @@ layout("/layouts/platform.html"){
<!--导入快递单号--> <!--导入快递单号-->
<el-dialog :visible.sync="importExpressExcelDialog" title="导入快递单号" width="65%"> <el-dialog :visible.sync="importExpressExcelDialog" title="导入快递单号" width="65%">
<el-timeline> <el-timeline>
<el-timeline-item placement="top" timestamp="下载选择数据(提供给各供货商),如已下载可直接进行下一步选择导入。"> <el-timeline-item placement="top"
timestamp="下载选择数据(提供给各供货商),如已下载可直接进行下一步选择导入。">
<el-card shadow="never"> <el-card shadow="never">
<el-button @click="exportSelectData" icon="el-icon-download" size="medium" type="">下载选择数据</el-button> <el-button @click="exportSelectData" icon="el-icon-download" size="medium" type="">下载选择数据
</el-button>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
<el-timeline-item placement="top" timestamp="选择套餐供货商"> <el-timeline-item placement="top" timestamp="选择套餐供货商">
@@ -538,7 +558,8 @@ layout("/layouts/platform.html"){
<el-form :model="formData" label-position="right" label-suffix=":" label-width="120px" ref="addForm"> <el-form :model="formData" label-position="right" label-suffix=":" label-width="120px" ref="addForm">
<el-row :gutter="60"> <el-row :gutter="60">
<el-col :span="24"> <el-col :span="24">
<el-form-item :rules="{required:true,message: '请选择地址信息', trigger: 'blur'}" label="地址信息" prop="addressList"> <el-form-item :rules="{required:true,message: '请选择地址信息', trigger: 'blur'}" label="地址信息"
prop="addressList">
<el-cascader <el-cascader
:options="dzOptions" :options="dzOptions"
:props="{ expandTrigger: 'hover' }" :props="{ expandTrigger: 'hover' }"
@@ -551,7 +572,8 @@ layout("/layouts/platform.html"){
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item :rules="{required:true,message: '请填写您的详细地址', trigger: 'blur'}" label="详细地址" prop="addressDetail"> <el-form-item :rules="{required:true,message: '请填写您的详细地址', trigger: 'blur'}"
label="详细地址" prop="addressDetail">
<el-input <el-input
maxlength="100" maxlength="100"
placeholder="请输入详细地址信息,如道路、门牌号、小区、楼栋号、单元等信息" placeholder="请输入详细地址信息,如道路、门牌号、小区、楼栋号、单元等信息"
@@ -563,13 +585,16 @@ layout("/layouts/platform.html"){
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item :rules="{required:true,message: '请填写收货人姓名', trigger: 'blur'}" label="收货人姓名" prop="userName"> <el-form-item :rules="{required:true,message: '请填写收货人姓名', trigger: 'blur'}"
label="收货人姓名" prop="userName">
<el-input maxlength="11" placeholder="请填写收货人姓名" v-model="formData.userName"></el-input> <el-input maxlength="11" placeholder="请填写收货人姓名" v-model="formData.userName"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item :rules="{required:true,message: '请填写手机号码', trigger: 'blur'}" label="手机号码" prop="tel"> <el-form-item :rules="{required:true,message: '请填写手机号码', trigger: 'blur'}" label="手机号码"
<el-input maxlength="11" placeholder="请填写手机号码" type="tel" v-model="formData.tel"></el-input> prop="tel">
<el-input maxlength="11" placeholder="请填写手机号码" type="tel"
v-model="formData.tel"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -694,12 +719,12 @@ layout("/layouts/platform.html"){
isChoose: 0 isChoose: 0
}, },
tableColumns: commonColumns.concat([ tableColumns: commonColumns.concat([
{ prop: "isChoose", label: "是否选择", width: "100px", sortable: true }, {prop: "isChoose", label: "是否选择", width: "100px", sortable: true},
{ prop: "gist_list", label: "所选福利"}, {prop: "gist_list", label: "所选福利"},
// { prop: "receiveAddress", label: "取货门店"}, // { prop: "receiveAddress", label: "取货门店"},
{ prop: "userSign", label: "签字", width: "100px", checked: 0 }, {prop: "userSign", label: "签字", width: "100px", checked: 0},
{ prop: "isAudit", label: "是否核对" }, {prop: "isAudit", label: "是否核对"},
{ prop: "auditTime", label: "核对时间", checked: 0 } {prop: "auditTime", label: "核对时间", checked: 0}
]), ]),
formRules: {}, formRules: {},
welfare, welfare,
@@ -808,7 +833,7 @@ layout("/layouts/platform.html"){
return return
} }
const msg = flag ? "您确定名单都已核实,准确无误,提交后无法撤回,是否确认提交?" : "您是否要取消核对名单?" const msg = flag ? "您确定名单都已核实,准确无误,提交后无法撤回,是否确认提交?" : "您是否要取消核对名单?"
const confirm = await this.$confirm(msg , "提示", { const confirm = await this.$confirm(msg, "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning"
@@ -923,7 +948,7 @@ layout("/layouts/platform.html"){
if (this.$refs["addForm"]) this.$refs["addForm"].resetFields() if (this.$refs["addForm"]) this.$refs["addForm"].resetFields()
}, },
async selectUserAddress() { async selectUserAddress() {
const resp = await $.get("/platform/welfare/addressManage/selectUserAddress", { userId: this.editWelfareData.userId }) const resp = await $.get("/platform/welfare/addressManage/selectUserAddress", {userId: this.editWelfareData.userId})
resp.data.map((r) => { resp.data.map((r) => {
let defaultName = r.isDefault ? "默认地址" : "" let defaultName = r.isDefault ? "默认地址" : ""
r.defaultName = defaultName r.defaultName = defaultName
@@ -975,7 +1000,7 @@ layout("/layouts/platform.html"){
}) })
}, },
handlePlusButtonClick(value, option, optionIndex) { handlePlusButtonClick(value, option, optionIndex) {
const { isCheckBox, multiSelectNum, singleOptionSupportMultipleSelection } = this.projectInfo const {isCheckBox, multiSelectNum, singleOptionSupportMultipleSelection} = this.projectInfo
if (isCheckBox === "checkBox") { if (isCheckBox === "checkBox") {
//判断是否支持单个多选 //判断是否支持单个多选
if (!singleOptionSupportMultipleSelection && value > 1) { if (!singleOptionSupportMultipleSelection && value > 1) {
@@ -994,7 +1019,8 @@ layout("/layouts/platform.html"){
} }
}, },
async openEditWelfare(row) { async openEditWelfare(row) {
await this.getUserSelection(row.id) const rowData = clone(row)
await this.getUserSelection(rowData.id)
this.welfareOptions.forEach((option) => { this.welfareOptions.forEach((option) => {
if (option.shoppingId) { if (option.shoppingId) {
const shopping = this.shoppingTypeOptions.find((s) => s.id === option.shoppingId) const shopping = this.shoppingTypeOptions.find((s) => s.id === option.shoppingId)
@@ -1009,17 +1035,18 @@ layout("/layouts/platform.html"){
}) })
this.exportWelfareListDialog = true this.exportWelfareListDialog = true
const data = await searchUser(row.loginname, null, null, null, null) const data = await searchUser(rowData.loginname, null, null, null, null)
this.editWelfareData = { this.editWelfareData = {
mobile: data.length !== 0 ? data[0].mobile : "", mobile: data.length !== 0 ? data[0].mobile : "",
username: row.username, username: rowData.username,
loginname: row.loginname, loginname: rowData.loginname,
receiveAddress: row.receiveAddress, receiveAddress: rowData.receiveAddress,
projectId: this.pageForm.projectId, projectId: this.pageForm.projectId,
userId: row.id userId: rowData.id
} }
this.$set(this.formData, "addressId", null)
const { v } = this.projectSelectOptions.find((p) => p.value === this.pageForm.projectId) const {v} = this.projectSelectOptions.find((p) => p.value === this.pageForm.projectId)
this.projectInfo = v this.projectInfo = v
await this.selectUserAddress() await this.selectUserAddress()
this.optionIdsChange() this.optionIdsChange()
@@ -1150,7 +1177,7 @@ layout("/layouts/platform.html"){
doExportWelfare, doExportWelfare,
doExportWelfareReceive, doExportWelfareReceive,
async doEditWelfareUnit(row) { async doEditWelfareUnit(row) {
const { listId, modifiedWelfareUnitId } = row const {listId, modifiedWelfareUnitId} = row
this.$set(row, "editWelfareUnitLoading", true) this.$set(row, "editWelfareUnitLoading", true)
const resp = await $.post(loc() + "/editWelfareUnit", { const resp = await $.post(loc() + "/editWelfareUnit", {
listId, listId,
@@ -1200,7 +1227,7 @@ layout("/layouts/platform.html"){
callback: async (a, b) => { callback: async (a, b) => {
if ("confirm" == a) { if ("confirm" == a) {
//确认后再执行 //确认后再执行
const resp = await $.post(loc() + "/delete", { id: JSON.stringify([row.listId]) }) const resp = await $.post(loc() + "/delete", {id: JSON.stringify([row.listId])})
if (resp.code === 0) { if (resp.code === 0) {
this.pageData() this.pageData()
} else { } else {
@@ -1211,7 +1238,7 @@ layout("/layouts/platform.html"){
}) })
}, },
dropdownCommand(command) { dropdownCommand(command) {
const { type, data } = command const {type, data} = command
if (type == "view") { if (type == "view") {
this.openView(data) this.openView(data)
} else if (type == "edit") { } else if (type == "edit") {
@@ -1223,11 +1250,11 @@ layout("/layouts/platform.html"){
this.$set(data, "editWelfareUnit", true) this.$set(data, "editWelfareUnit", true)
} }
}, },
openEdit({ id }) { openEdit({id}) {
this.userId = id this.userId = id
this.$refs.guava.edit() this.$refs.guava.edit()
}, },
openView({ id }) { openView({id}) {
this.userId = id this.userId = id
this.$refs.guava.view() this.$refs.guava.view()
}, },
@@ -1258,7 +1285,7 @@ layout("/layouts/platform.html"){
this.userSelection = resp.data this.userSelection = resp.data
}, },
async getWelfareOptions() { async getWelfareOptions() {
const resp = await $.post(loc() + "/welfareOptions", { projectId: this.pageForm.projectId }) const resp = await $.post(loc() + "/welfareOptions", {projectId: this.pageForm.projectId})
resp.data.map((v) => { resp.data.map((v) => {
const selection = this.userSelection.find((u) => u.selectOptionId === v.id) const selection = this.userSelection.find((u) => u.selectOptionId === v.id)
if (selection && selection.selectNum) { if (selection && selection.selectNum) {