完善合约状态字典,调整新增合约、修改合约、审核合约(包括会员的自动添加),未处理合约模块的权限。

This commit is contained in:
jlt
2022-04-05 00:54:02 +08:00
parent d0b70c1c40
commit c703bb5da1
11 changed files with 552 additions and 127 deletions

View File

@ -35,6 +35,14 @@ export function updateContract(data) {
})
}
// 审核会员签约
export function auditContract(id) {
return request({
url: '/csa/contract/audit/' + id,
method: 'put'
})
}
// 删除会员签约
export function delContract(contractId) {
return request({

View File

@ -1,9 +1,9 @@
<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="memberName">
<el-form-item label="姓名" prop="contractor">
<el-input
v-model="queryParams.memberName"
v-model="queryParams.contractor"
placeholder="请输入姓名"
clearable
@keyup.enter.native="handleQuery"
@ -40,19 +40,19 @@
size="mini"
@click="handleAdd"
v-hasPermi="['csa:contract:add']"
>新增
>录入
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
icon="el-icon-s-check"
size="mini"
:disabled="single"
@click="handleUpdate"
@click="handleAudit"
v-hasPermi="['csa:contract:edit']"
>修改
>审核
</el-button>
</el-col>
<el-col :span="1.5">
@ -61,12 +61,36 @@
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
:disabled="single"
@click="handleInvalid"
v-hasPermi="['csa:contract:remove']"
>删除
>作废
</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['csa:contract:edit']"-->
<!-- >修改-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['csa:contract:remove']"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
@ -83,13 +107,22 @@
<el-table v-loading="loading" :data="contractList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="姓名" align="center" prop="memberName"/>
<el-table-column label="凭据号码" align="center" prop="joinCredentialNo"/>
<el-table-column label="金币数量" align="right" prop="coins" width="150"/>
<el-table-column label="签约人" align="center" prop="contractor"/>
<el-table-column label="合约状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.csa_contract_status" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="激活方式" align="center" prop="activateWay">
<template slot-scope="scope">
<dict-tag :options="dict.type.csa_activation_way" :value="scope.row.activateWay"/>
</template>
</el-table-column>
<el-table-column label="凭据编号" align="center" prop="joinCredentialNo"/>
<el-table-column label="金币数量" align="right" prop="coins" width="120"/>
<!-- <el-table-column label="账户金额" align="center" prop="balance"/>-->
<el-table-column label="菜品斤数" align="right" prop="weight" width="120"/>
<el-table-column label="拱棚年限" align="center" prop="archedYears"/>
<el-table-column label="激活方式" align="center" prop="activateWay"/>
<el-table-column label="生效日期" align="center" prop="joinDate" width="120">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.joinDate, '{y}-{m}-{d}') }}</span>
@ -101,11 +134,11 @@
</template>
</el-table-column>
<el-table-column label="天数" align="right" prop="days" width="80" />
<el-table-column label="状态" align="center" prop="status"/>
<el-table-column label="备注" align="center" prop="remark"/>
<el-table-column label="备注" align="center" prop="remark" width="200" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
:disabled="scope.row.status != '1'"
size="mini"
type="text"
icon="el-icon-edit"
@ -114,6 +147,7 @@
>修改
</el-button>
<el-button
:disabled="scope.row.status != '1'"
size="mini"
type="text"
icon="el-icon-delete"
@ -124,7 +158,6 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -134,14 +167,27 @@
/>
<!-- 添加或修改会员签约对话框 -->
<el-dialog :title="title" :visible.sync="open" width="650px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px">
<el-dialog :title="title" :visible.sync="open" width="560px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px" size="small">
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="memberName">
<el-input v-model="form.memberName" placeholder="请输入姓名"/>
<el-col :span="24">
<el-form-item label="签约人" prop="contractor">
<el-input v-model="form.contractor" placeholder="签约人"/>
</el-form-item>
</el-col>
<!-- <el-col :span="12">-->
<!-- <el-form-item label="菜地编号" prop="farmerId">-->
<!-- <el-select v-model="form.farmerId" filterable placeholder="签约的菜地编号">-->
<!-- <el-option-->
<!-- v-for="item in this.famers"-->
<!-- :key="item.farmerId"-->
<!-- :label="item.code"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="激活方式" prop="activateWay">
<el-select disabled v-model="form.activateWay" placeholder="请选择激活方式">
@ -153,6 +199,11 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="凭据编号" prop="joinCredentialNo">
<el-input v-model="form.joinCredentialNo" placeholder="合同编号或收据编号"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
@ -161,7 +212,9 @@
v-model="form.joinDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择生效日期">
placeholder="请选择生效日期"
style="width: 170px;"
>
</el-date-picker>
</el-form-item>
</el-col>
@ -171,26 +224,25 @@
v-model="form.dueDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择到期日期">
placeholder="请选择到期日期"
style="width: 170px;"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="凭据号码" prop="joinCredentialNo">
<el-input v-model="form.joinCredentialNo" placeholder="请输入签约凭据编号,如合同编号、收据编号等"/>
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item label="金币数量" prop="coins">
<el-input v-model="form.coins" placeholder="请输入金币">
<template slot="append"></template>
<el-input v-model.number="form.coins" placeholder="请输入金币">
<template slot="suffix"></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="账户金额" prop="balance">
<el-input disabled v-model="form.balance" placeholder="请输入账户金额">
<template slot="append"></template>
<el-input disabled v-model.number="form.balance" placeholder="请输入账户金额">
<template slot="suffix"></template>
</el-input>
</el-form-item>
</el-col>
@ -198,21 +250,21 @@
<el-row>
<el-col :span="12">
<el-form-item label="菜品重量" prop="weight">
<el-input v-model="form.weight" placeholder="请输入菜品重量">
<template slot="append"></template>
<el-input v-model.number="form.weight" placeholder="请输入菜品重量">
<template slot="suffix"></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="拱棚年限" prop="archedYears">
<el-input v-model="form.archedYears" placeholder="请输入拱棚年限">
<template slot="append"></template>
<el-input v-model.number="form.archedYears" placeholder="请输入拱棚年限">
<template slot="suffix"></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注"/>
<el-input v-model="form.remark" type="textarea" rows="3" placeholder="请输入备注"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -224,17 +276,21 @@
</template>
<script>
import { listContract, getContract, delContract, addContract, updateContract } from '@/api/csa/contract'
import { listContract, getContract, delContract, addContract, updateContract, auditContract } from '@/api/csa/contract'
import Dict from '../../system/dict/index'
export default {
name: 'Contract',
dicts: ['csa_activation_way'],
components: { Dict },
dicts: ['csa_activation_way', 'csa_contract_status'],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 选中的当前行数据
curRowData: null,
// 非单个禁用
single: true,
// 非多个禁用
@ -253,17 +309,16 @@
queryParams: {
pageNum: 1,
pageSize: 10,
memberName: null,
contractor: null,
joinDate: null,
dueDate: null,
status: null
},
// 表单参数
form: {},
// 表单校验
rules: {
memberName: [
{ required: true, message: '姓名不能为空', trigger: 'blur' }
contractor: [
{ required: true, message: '签约人不能为空', trigger: 'blur' }
],
joinDate: [
{ required: true, message: '生效日期必选', trigger: 'blur' }
@ -271,20 +326,27 @@
dueDate: [
{ required: true, message: '到期日期必选', trigger: 'blur' }
],
joinCredentialNo: [
{ required: true, message: '凭据编号不能为空', trigger: 'blur' }
],
// gardenId: [
// { required: true, message: '菜地编号不能为空', trigger: 'blur' }
// ],
coins: [
{ required: true, message: '金币数量不能为空', trigger: 'blur' }
{ required: true, message: '金币数量不能为空', trigger: 'blur' },
{ type: 'number', message: '金币数量必须为整数', trigger: 'change' }
],
// balance: [
// { required: true, message: '账户金额不能为空', trigger: 'blur' }
// { required: true, message: '账户金额不能为空', trigger: 'blur' },
// { type: 'number', message: '金币数量必须为整数', trigger: 'change' }
// ],
weight: [
{ required: true, message: '菜品重量不能为空', trigger: 'blur' }
{ required: true, message: '菜品重量不能为空', trigger: 'blur' },
{ type: 'number', message: '菜品重量必须为整数', trigger: 'change' }
],
archedYears: [
{ required: true, message: '拱棚年限不能为空', trigger: 'blur' }
],
joinCredentialNo: [
{ required: true, message: '凭据号码不能为空', trigger: 'blur' }
{ required: true, message: '拱棚年限不能为空', trigger: 'blur' },
{ type: 'number', message: '拱棚年限必须为整数', trigger: 'change' }
]
}
}
@ -311,8 +373,7 @@
reset() {
this.form = {
contractId: null,
farmerId: null,
memberName: null,
contractor: null,
coins: 0,
balance: 0,
weight: 0,
@ -337,6 +398,7 @@
},
// 多选框选中数据
handleSelectionChange(selection) {
this.curRowData = (selection.length == 1) ? selection[0] : null;
this.ids = selection.map(item => item.contractId)
this.single = selection.length !== 1
this.multiple = !selection.length
@ -357,6 +419,33 @@
this.title = '修改会员合约'
})
},
/** 审核按钮操作 */
handleAudit(row) {
if (this.curRowData.status != '1') {
this.$modal.alertWarning("只有待定状态的合约才可以审核!");
return;
}
this.$modal.confirm('是否要确定审核此合约', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// this.curRowData.contractId = 2;
auditContract(this.curRowData.contractId).then( response => {
this.$modal.alertSuccess(
"【" + this.curRowData.contractor +
"】的凭据编号为【" + this.curRowData.joinCredentialNo + "】的合约审核成功!")
this.getList();
}).catch((response) => {
// this.$modal.alertError(response);
// console.log(response)
})
})
},
/** 作废按钮操作 */
handleInvalid(row) {
},
/** 提交按钮 */
submitForm() {
this.$refs['form'].validate(valid => {
@ -380,7 +469,8 @@
/** 删除按钮操作 */
handleDelete(row) {
const contractIds = row.contractId || this.ids
this.$modal.confirm('是否确认删除会员合约编号为"' + contractIds + '"的数据项?').then(function() {
this.$modal.confirm('是否确认删除【' + row.contractor + '】的编号为【' + row.joinCredentialNo + '】的合约?')
.then(function() {
return delContract(contractIds)
}).then(() => {
this.getList()

View File

@ -79,25 +79,24 @@
<el-table v-loading="loading" :data="farmerList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="会员id" align="center" prop="farmerId" />
<el-table-column label="会员姓名" align="center" prop="name" />
<el-table-column label="性别" align="center" prop="gender" />
<el-table-column label="金币余额" align="center" prop="coins" />
<el-table-column label="金币" align="center" prop="coins" />
<el-table-column label="账户余额" align="center" prop="balance" />
<el-table-column label="重量余额" align="center" prop="weight" />
<el-table-column label="拱棚年限余额" align="center" prop="archedYears" />
<el-table-column label="菜品斤数" align="center" prop="weight" />
<el-table-column label="拱棚年" align="center" prop="archedYears" />
<el-table-column label="加入日期" align="center" prop="joinDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.joinDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="到期日期" align="center" prop="dueDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.dueDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="到期日期" align="center" prop="dueDate" width="180">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ parseTime(scope.row.dueDate, '{y}-{m}-{d}') }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="是否过期" align="center" prop="isExpire" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="备注" align="center" prop="remark" :show-tooltip-when-overflow="true" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -117,7 +116,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"