作者 xiaoqiu

完成角色分配功能

... ... @@ -64,9 +64,9 @@ export function queryMyList(params) {
}
// 办理一个用户任务
export function disposeUser(data) {
export function disposeUser(data, taskId) {
return request({
url: '/registration/completeTask/{taskId}',
url: `/registration/completeTask/${taskId}`,
method: 'post',
data
})
... ... @@ -75,8 +75,17 @@ export function disposeUser(data) {
// 转办
export function transfer(taskId) {
return request({
url: `/registration/completeTask/${taskId}`,
url: `/registratiom/transferTask/${taskId}`,
method: 'post'
})
}
// 修改登记信息
export function updateCarInfo(data) {
return request({
url: '/registration/edit',
method: 'post',
data
})
}
... ...
... ... @@ -137,7 +137,7 @@
<el-input
v-model="form.licensePlateNumber"
placeholder="请输入车牌号"
disabled
:disabled="hasRole"
/>
</el-form-item>
</el-col>
... ... @@ -145,7 +145,7 @@
<el-form-item label="车架号" prop="frameNumber">
<el-input
v-model="form.frameNumber"
disabled
:disabled="hasRole"
placeholder="请输入车架号"
/>
</el-form-item>
... ... @@ -156,7 +156,7 @@
<el-form-item label="车主姓名" prop="name">
<el-input
v-model="form.name"
disabled
:disabled="hasRole"
placeholder="请输入车主姓名"
/>
</el-form-item>
... ... @@ -165,7 +165,7 @@
<el-form-item label="联系电话" prop="phone">
<el-input
v-model="form.phone"
disabled
:disabled="hasRole"
placeholder="请输入联系电话"
/>
</el-form-item>
... ... @@ -176,7 +176,7 @@
<el-form-item label="车辆类型" prop="vehicleType">
<el-input
v-model="form.vehicleType"
disabled
:disabled="hasRole"
placeholder="请输入登记时间"
/>
</el-form-item>
... ... @@ -185,7 +185,7 @@
<el-form-item label="车辆使用性质" prop="vehicleNature">
<el-input
v-model="form.vehicleNature"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -196,7 +196,7 @@
<el-form-item label="核定载客数" prop="passengersNumber">
<el-input
v-model="form.passengersNumber"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -205,7 +205,7 @@
<el-form-item label="核定载质量" prop="passengerCapacity">
<el-input
v-model="form.passengerCapacity"
disabled
:disabled="hasRole"
placeholder="请输入承保公司"
/>
</el-form-item>
... ... @@ -216,7 +216,7 @@
<el-form-item label="排量毫升" prop="emissions">
<el-input
v-model="form.emissions"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -225,7 +225,7 @@
<el-form-item label="中文品牌" prop="vehicleBrand">
<el-input
v-model="form.vehicleBrand"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -236,7 +236,7 @@
<el-form-item label="车辆型号" prop="vehicleModel">
<el-input
v-model="form.vehicleModel"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -245,7 +245,7 @@
<el-form-item label="准牵引准质量" prop="tractionMass">
<el-input
v-model="form.tractionMass"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -256,7 +256,7 @@
<el-form-item label="保险需求" prop="requirements">
<el-input
v-model="form.requirements"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -265,21 +265,14 @@
<el-form-item label="承保单号" prop="policyNumber">
<el-input
v-model="form.policyNumber"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="保单回馈" prop="progress">
<el-input
:rows="6"
disabled
type="textarea"
placeholder="请输入保单回馈"
v-model="form.message"
resize="none"
/>
<QuillEditor :value="form.message" @updateValue="getMsg" />
</el-form-item>
</el-form>
<template #footer>
... ... @@ -300,6 +293,9 @@ const total = ref(5);
const open = ref(false);
const form = ref({});
const showSearch = ref(true);
const hasRole = computed(() => {
return !proxy.$auth.hasRole("associationemployee");
});
const queryParams = reactive({
pageNum: 1,
pageSize: 10,
... ... @@ -362,7 +358,9 @@ function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
const getMsg = (val) => {
form.value.message = val;
};
getList();
</script>
... ...
<template>
<div class="app-container">
<!-- 表格数据 -->
<el-table
v-loading="loading"
:data="policyList"
@selection-change="handleSelectionChange"
@row-click="handleUpdate"
>
<el-table v-loading="loading" :data="policyList" @row-click="handleUpdate">
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="序号"
prop="policyId"
width="120"
align="center"
/>
<el-table-column label="序号" width="55" type="index" />
<el-table-column
label="登记时间"
prop="createTime"
prop="initialRegistrationTime"
width="150"
align="center"
/>
<el-table-column
label="车牌号"
prop="carNum"
prop="licensePlateNumber"
width="150"
align="center"
/>
<el-table-column label="车架号" prop="frameNum" align="center" />
<el-table-column label="车架号" prop="frameNumber" align="center" />
<el-table-column
label="车主姓名"
prop="name"
... ... @@ -41,21 +31,77 @@
/>
<el-table-column
label="上年承保公司"
prop="company"
prop="sysDeptName"
width="150"
align="center"
/>
<el-table-column
v-show="hasCompanyadmin"
label="分配机制"
prop="distributionMechanism"
width="150"
align="center"
/>
<el-table-column
label="订单分配时间"
prop="distributionTime"
width="150"
align="center"
/>
<el-table-column
label="保单进度"
prop="orderProgress"
width="150"
align="center"
/>
<el-table-column
label="承接时间"
prop="companyEmployeeUndertakeTime"
width="150"
align="center"
/>
<el-table-column
v-show="hasCompanyadmin"
label="承接人"
prop="associationEmployeeUserName"
width="150"
align="center"
/>
<el-table-column label="操作" align="center" width="360" fixed="right">
<template #default>
<el-button type="primary" v-hasPermi="['policy:pending:continue']"
>承接</el-button
>
<template #default="{ row }">
<el-button type="primary" v-hasPermi="['policy:pending:continue']">{{
row.orderProgress === "已承接" ? "承接回馈" : "承接"
}}</el-button>
<el-button type="primary" v-hasPermi="['policy:pending:sharing']"
>分配</el-button
>
<el-button type="primary" v-hasPermi="['policy:pending:transfer']"
>转办</el-button
>
<el-button
type="primary"
v-show="hasRole"
@click="handleSuccess(0, row.taskId)"
>通过</el-button
>
<el-button
type="primary"
v-show="hasRole"
@click="handleFallback(1, row.taskId)"
>退回</el-button
>
<el-button
type="primary"
v-show="hasRole"
@click="handleVoid(2, row.taskId)"
>作废</el-button
>
<el-button
type="primary"
v-show="hasRole"
@click="handleAuthCompany(0, row.taskId)"
>分配承保公司</el-button
>
</template>
</el-table-column>
</el-table>
... ... @@ -75,19 +121,14 @@
width="500"
append-to-body
>
<el-input
:rows="6"
type="textarea"
placeholder="请输入作废原因"
v-model="deprecatedReason"
resize="none"
<QuillEditor
:value="deprecatedForm.deprecatedReason"
@updateValue="getMsg"
/>
<template #footer>
<div class="dialog-footer">
<el-button @click="deprecatedShow = false">取消</el-button>
<el-button type="primary" @click="deprecatedShow = false"
>确定</el-button
>
<el-button type="primary" @click="sunmitDeprecated">确定</el-button>
</div>
</template>
</el-dialog>
... ... @@ -102,28 +143,26 @@
<div class="company_box">
<div class="header_top">
<el-input
v-model="companyValue"
v-model="companyQueryParams.deptName"
style="width: 380px"
placeholder="请输入承保公司名称(支持模糊查询)"
prefix-icon="Search"
/>
<el-button type="primary">查询</el-button>
<el-button type="primary" @click="getDeptList">查询</el-button>
</div>
<el-radio-group v-model="company">
<el-radio-group v-model="companyForm.deptId" @change="handleDeptChange">
<el-radio
v-for="item in companyList"
:key="item.id"
:label="item.value"
>{{ item.label }}</el-radio
v-for="item in deptOptions"
:key="item.deptId"
:label="item.deptId"
>{{ item.deptName }}</el-radio
>
</el-radio-group>
</div>
<template #footer>
<div class="dialog-footer">
<el-button @click="companyShow = false">取消</el-button>
<el-button type="primary" @click="companyShow = false"
>确定</el-button
>
<el-button type="primary" @click="submitForm">确定</el-button>
</div>
</template>
</el-dialog>
... ... @@ -202,13 +241,22 @@
</template>
<script setup>
import { queryMyList } from "@/api/policy/index";
import { queryMyList, disposeUser } from "@/api/policy/index";
import { listDept } from "@/api/system/dept";
import { onMounted, ref } from "vue";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const total = ref(5);
const total = ref(0);
const title = ref("保单信息");
const open = ref(false);
const form = ref({});
const hasRole = computed(() => {
return proxy.$auth.hasRole("associationemployee");
});
const hasCompanyadmin = computed(() => {
return proxy.$auth.hasRole("companyadmin");
});
const rules = ref({
carNum: [{ required: true, message: "车牌号不能为空", trigger: "blur" }],
frameNum: [{ required: true, message: "车架号不能为空", trigger: "blur" }],
... ... @@ -223,50 +271,99 @@ const rules = ref({
],
});
const companyShow = ref(false);
const companyList = ref([
{ id: 1, value: 0, label: "中国太平洋保险集团" },
{ id: 2, value: 1, label: "中国平安财产保险股份有限公司" },
{ id: 3, value: 2, label: "北部湾财产保险股份有限公司" },
{ id: 4, value: 3, label: "华安财产保险股份有限公司" },
]);
const deptOptions = ref([]);
const company = ref(2);
const companyValue = ref("");
const deprecatedShow = ref(false);
const deprecatedReason = ref("");
const deprecatedForm = ref({});
const companyForm = ref({});
const queryParams = reactive({
pageNum: 1,
pageSize: 10,
});
const companyQueryParams = reactive({
deptName: undefined,
status: undefined,
});
const policyList = ref([]);
/** 多选框选中数据 */
function handleSelectionChange(selection) {
// ids.value = selection.map(item => item.roleId);
// single.value = selection.length != 1;
// multiple.value = !selection.length;
console.log(selection);
}
const getList = async () => {
loading.value = true;
const res = await queryMyList(queryParams);
policyList.value = res.rows;
total.value = res.total;
const { data } = await queryMyList(queryParams);
policyList.value = data.rows;
total.value = data.total;
loading.value = false;
};
const handleSuccess = () => {
console.log("通过");
// 通过保单
const handleSuccess = (associationapprove, taskId) => {
ElMessageBox.confirm("是否通过该保单?", {
confirmButtonText: "确认通过",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
disposeUser({ associationapprove }, taskId).then((res) => {
proxy.$modal.msgSuccess("保单已通过");
});
})
.catch(() => {
proxy.$modal.msg("取消通过");
});
};
const handleFallback = () => {
console.log("退回");
// 退回保单
const handleFallback = (associationapprove, taskId) => {
ElMessageBox.confirm("是否退回该保单?", {
confirmButtonText: "确认退回",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
disposeUser({ associationapprove }, taskId).then((res) => {
proxy.$modal.msgSuccess("保单已退回");
});
})
.catch(() => {
proxy.$modal.msg("已取消");
});
};
const handleVoid = () => {
console.log("作废");
// 作废保单
const handleVoid = (associationapprove, taskId) => {
deprecatedForm.value = {
associationapprove,
taskId,
};
deprecatedShow.value = true;
};
const handleAuthCompany = () => {
// 提交作废表单
const sunmitDeprecated = () => {
const data = {
associationapprove: deprecatedForm.value.associationapprove,
comment: deprecatedForm.value.deprecatedReason,
};
const taskId = deprecatedForm.value.taskId;
disposeUser(data, taskId).then((res) => {
proxy.$modal.msgSuccess("保单已退回");
});
};
// 分配承保公司
const handleAuthCompany = (associationapprove, taskId) => {
companyForm.value = {
associationapprove,
taskId,
};
companyShow.value = true;
getDeptList();
};
/** 查询部门列表 */
const getDeptList = () => {
loading.value = true;
listDept(companyQueryParams).then((response) => {
deptOptions.value = response.data.filter((item) => item.parentId === 100);
loading.value = false;
});
};
/** 重置操作表单 */
function reset() {
form.value = {
... ... @@ -287,15 +384,23 @@ function handleUpdate(row) {
form.value = row;
open.value = true;
}
/** 提交按钮 */
/** 提交通过分配承保公司 */
function submitForm() {
proxy.$refs["policyRef"].validate((valid) => {
if (valid) {
proxy.$modal.msgSuccess("修改成功");
}
const data = {
associationapprove: companyForm.value.associationapprove,
deptId: companyForm.value.deptId,
};
const taskId = companyForm.value.taskId;
disposeUser(data, taskId).then((res) => {
companyShow.value = true;
proxy.$modal.msgSuccess("保单已分配成功");
});
}
const getMsg = (val) => {
deprecatedForm.value.deprecatedReason = val;
};
getList();
</script>
... ...
... ... @@ -116,16 +116,16 @@
</el-form-item>
</el-form>
<!-- 数据统计 -->
<div class="total_line">
<!-- <div class="total_line">
<span>统计:平安保险公司(10条)</span>
<span>已办结:3</span>
<span>未办结:3</span>
<span>待承接:2</span>
<span>已承接:2</span>
</div>
</div> -->
<!-- 表格数据 -->
<el-table v-loading="loading" :data="policyList" @row-click="handleUpdate">
<el-table v-loading="loading" :data="policyList">
<el-table-column label="序号" type="index" />
<el-table-column
label="登记时间"
... ... @@ -183,8 +183,8 @@
width="100"
prop="Feedback"
>
<template #default>
<el-button type="primary">查阅</el-button>
<template #default="{ row }">
<el-button type="primary" @click="handleUpdate(row)">查阅</el-button>
</template>
</el-table-column>
</el-table>
... ... @@ -205,7 +205,7 @@
<el-input
v-model="form.licensePlateNumber"
placeholder="请输入车牌号"
disabled
:disabled="hasRole"
/>
</el-form-item>
</el-col>
... ... @@ -213,7 +213,7 @@
<el-form-item label="车架号" prop="frameNumber">
<el-input
v-model="form.frameNumber"
disabled
:disabled="hasRole"
placeholder="请输入车架号"
/>
</el-form-item>
... ... @@ -224,7 +224,7 @@
<el-form-item label="车主姓名" prop="name">
<el-input
v-model="form.name"
disabled
:disabled="hasRole"
placeholder="请输入车主姓名"
/>
</el-form-item>
... ... @@ -233,7 +233,7 @@
<el-form-item label="联系电话" prop="phone">
<el-input
v-model="form.phone"
disabled
:disabled="hasRole"
placeholder="请输入联系电话"
/>
</el-form-item>
... ... @@ -244,7 +244,7 @@
<el-form-item label="车辆类型" prop="vehicleType">
<el-input
v-model="form.vehicleType"
disabled
:disabled="hasRole"
placeholder="请输入登记时间"
/>
</el-form-item>
... ... @@ -253,7 +253,7 @@
<el-form-item label="车辆使用性质" prop="vehicleNature">
<el-input
v-model="form.vehicleNature"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -264,7 +264,7 @@
<el-form-item label="核定载客数" prop="passengersNumber">
<el-input
v-model="form.passengersNumber"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -273,7 +273,7 @@
<el-form-item label="核定载质量" prop="passengerCapacity">
<el-input
v-model="form.passengerCapacity"
disabled
:disabled="hasRole"
placeholder="请输入承保公司"
/>
</el-form-item>
... ... @@ -284,7 +284,7 @@
<el-form-item label="排量毫升" prop="emissions">
<el-input
v-model="form.emissions"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -293,7 +293,7 @@
<el-form-item label="中文品牌" prop="vehicleBrand">
<el-input
v-model="form.vehicleBrand"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -304,7 +304,7 @@
<el-form-item label="车辆型号" prop="vehicleModel">
<el-input
v-model="form.vehicleModel"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -313,7 +313,7 @@
<el-form-item label="准牵引准质量" prop="tractionMass">
<el-input
v-model="form.tractionMass"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -324,7 +324,7 @@
<el-form-item label="保险需求" prop="requirements">
<el-input
v-model="form.requirements"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
... ... @@ -333,27 +333,25 @@
<el-form-item label="承保单号" prop="policyNumber">
<el-input
v-model="form.policyNumber"
disabled
:disabled="hasRole"
placeholder="请输入办理人"
/>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="保单回馈" prop="progress">
<el-input
:rows="6"
disabled
type="textarea"
placeholder="请输入保单回馈"
v-model="form.message"
resize="none"
/>
<QuillEditor :value="form.comment" @updateValue="getMsg" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="open = false">取消</el-button>
<el-button type="primary" @click="open = false">确定</el-button>
<el-button
type="primary"
v-hasPermi="['policy:info:edit']"
@click="submit"
>提交</el-button
>
</div>
</template>
</el-dialog>
... ... @@ -361,7 +359,7 @@
</template>
<script setup>
import { queryList, queryResult } from "@/api/policy";
import { queryList, queryResult, updateCarInfo } from "@/api/policy";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const total = ref(5);
... ... @@ -382,6 +380,9 @@ const queryParams = reactive({
startTime: "",
endTime: "",
});
const hasRole = computed(() => {
return !proxy.$auth.hasRole("associationemployee");
});
const timeFrame = ref(null);
const statusOption = ref([
{
... ... @@ -442,14 +443,23 @@ function reset() {
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
queryResult({ processInstanceId: row.processInstanceId }).then((res) => {
if (row.policyStatus === "已作废") {
form.value = row;
form.value.policyNumber = res?.data?.policyNumber;
form.value.message = res?.data?.message;
open.value = true;
});
} else {
queryResult({ processInstanceId: row.processInstanceId }).then((res) => {
form.value = row;
form.value.policyNumber = res?.data?.policyNumber;
form.value.comment = res?.data?.message;
open.value = true;
});
}
}
const getMsg = (val) => {
form.value.comment = val;
};
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
... ... @@ -460,7 +470,13 @@ function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
const submit = async () => {
updateCarInfo(form.value).then((response) => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
};
getList();
</script>
... ...