正在显示
19 个修改的文件
包含
941 行增加
和
981 行删除
| @@ -63,7 +63,7 @@ export function queryResult(params) { | @@ -63,7 +63,7 @@ export function queryResult(params) { | ||
| 63 | }) | 63 | }) |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | -// 查询作废备注 | 66 | +// 查询备注 |
| 67 | export function queryDefeatContent(params) { | 67 | export function queryDefeatContent(params) { |
| 68 | return request({ | 68 | return request({ |
| 69 | url: '/registration/monitor/getComment', | 69 | url: '/registration/monitor/getComment', |
| @@ -123,3 +123,19 @@ export function getCarDetail(id) { | @@ -123,3 +123,19 @@ export function getCarDetail(id) { | ||
| 123 | method: 'get' | 123 | method: 'get' |
| 124 | }) | 124 | }) |
| 125 | } | 125 | } |
| 126 | + | ||
| 127 | +// 获取流转下一家公司 | ||
| 128 | +export function getCompanyTip() { | ||
| 129 | + return request({ | ||
| 130 | + url: `/registration/getNext`, | ||
| 131 | + method: 'post' | ||
| 132 | + }) | ||
| 133 | +} | ||
| 134 | + | ||
| 135 | +// 获取轮次 | ||
| 136 | +export function getCount() { | ||
| 137 | + return request({ | ||
| 138 | + url: `/system/rule/getCounting`, | ||
| 139 | + method: 'post' | ||
| 140 | + }) | ||
| 141 | +} |
| @@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
| 9 | <div class="card-panel-text">未承接</div> | 9 | <div class="card-panel-text">未承接</div> |
| 10 | <count-to | 10 | <count-to |
| 11 | :start-val="0" | 11 | :start-val="0" |
| 12 | - :end-val="102400" | 12 | + :end-val="totalList[0]" |
| 13 | :duration="2600" | 13 | :duration="2600" |
| 14 | class="card-panel-num" | 14 | class="card-panel-num" |
| 15 | /> | 15 | /> |
| @@ -25,7 +25,7 @@ | @@ -25,7 +25,7 @@ | ||
| 25 | <div class="card-panel-text">已承接</div> | 25 | <div class="card-panel-text">已承接</div> |
| 26 | <count-to | 26 | <count-to |
| 27 | :start-val="0" | 27 | :start-val="0" |
| 28 | - :end-val="81212" | 28 | + :end-val="totalList[1]" |
| 29 | :duration="3000" | 29 | :duration="3000" |
| 30 | class="card-panel-num" | 30 | class="card-panel-num" |
| 31 | /> | 31 | /> |
| @@ -41,7 +41,7 @@ | @@ -41,7 +41,7 @@ | ||
| 41 | <div class="card-panel-text">未完成</div> | 41 | <div class="card-panel-text">未完成</div> |
| 42 | <count-to | 42 | <count-to |
| 43 | :start-val="0" | 43 | :start-val="0" |
| 44 | - :end-val="9280" | 44 | + :end-val="totalList[2]" |
| 45 | :duration="3200" | 45 | :duration="3200" |
| 46 | class="card-panel-num" | 46 | class="card-panel-num" |
| 47 | /> | 47 | /> |
| @@ -57,7 +57,7 @@ | @@ -57,7 +57,7 @@ | ||
| 57 | <div class="card-panel-text">已完成</div> | 57 | <div class="card-panel-text">已完成</div> |
| 58 | <count-to | 58 | <count-to |
| 59 | :start-val="0" | 59 | :start-val="0" |
| 60 | - :end-val="13600" | 60 | + :end-val="totalList[3]" |
| 61 | :duration="3600" | 61 | :duration="3600" |
| 62 | class="card-panel-num" | 62 | class="card-panel-num" |
| 63 | /> | 63 | /> |
| @@ -69,6 +69,13 @@ | @@ -69,6 +69,13 @@ | ||
| 69 | 69 | ||
| 70 | <script setup> | 70 | <script setup> |
| 71 | import { CountTo } from "vue3-count-to"; | 71 | import { CountTo } from "vue3-count-to"; |
| 72 | +defineProps({ | ||
| 73 | + totalList: { | ||
| 74 | + type: Object, | ||
| 75 | + default: () => {}, | ||
| 76 | + }, | ||
| 77 | +}); | ||
| 78 | + | ||
| 72 | const $emit = defineEmits(["handleSetLineChartData"]); | 79 | const $emit = defineEmits(["handleSetLineChartData"]); |
| 73 | const handleSetLineChartData = (type) => { | 80 | const handleSetLineChartData = (type) => { |
| 74 | $emit("handleSetLineChartData", type); | 81 | $emit("handleSetLineChartData", type); |
src/utils/intervalTime.js
0 → 100644
| @@ -26,7 +26,22 @@ | @@ -26,7 +26,22 @@ | ||
| 26 | <el-table-column type="selection" width="55" align="center" /> | 26 | <el-table-column type="selection" width="55" align="center" /> |
| 27 | <el-table-column label="序号" prop="id" align="center" /> | 27 | <el-table-column label="序号" prop="id" align="center" /> |
| 28 | <el-table-column label="保险公司名称" prop="deptName" align="center" /> | 28 | <el-table-column label="保险公司名称" prop="deptName" align="center" /> |
| 29 | - <el-table-column label="周分配订单" width="240" align="center" prop="num"> | 29 | + <el-table-column label="状态" align="center" key="status"> |
| 30 | + <template #default="scope"> | ||
| 31 | + <el-switch | ||
| 32 | + v-model="scope.row.status" | ||
| 33 | + active-value="0" | ||
| 34 | + inactive-value="1" | ||
| 35 | + @change="handleUpdate(scope.row)" | ||
| 36 | + /> | ||
| 37 | + </template> | ||
| 38 | + </el-table-column> | ||
| 39 | + <el-table-column | ||
| 40 | + label="周期分配订单" | ||
| 41 | + width="240" | ||
| 42 | + align="center" | ||
| 43 | + prop="num" | ||
| 44 | + > | ||
| 30 | <template #default="{ row }"> | 45 | <template #default="{ row }"> |
| 31 | <el-input v-model="row.num" type="num" /> | 46 | <el-input v-model="row.num" type="num" /> |
| 32 | </template> | 47 | </template> |
| @@ -125,8 +140,9 @@ onMounted(() => { | @@ -125,8 +140,9 @@ onMounted(() => { | ||
| 125 | 140 | ||
| 126 | // 获取规则列表 | 141 | // 获取规则列表 |
| 127 | const getList = async () => { | 142 | const getList = async () => { |
| 128 | - const { data } = await queryRules(); | ||
| 129 | - rulesList.value = data; | 143 | + const { data } = await queryRules(queryParams); |
| 144 | + rulesList.value = data.records || data; | ||
| 145 | + total.value = data.total || 0; | ||
| 130 | }; | 146 | }; |
| 131 | /** 查询部门列表 */ | 147 | /** 查询部门列表 */ |
| 132 | const getDeptList = () => { | 148 | const getDeptList = () => { |
| @@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
| 17 | </div> | 17 | </div> |
| 18 | <ul class="list-group list-group-striped"> | 18 | <ul class="list-group list-group-striped"> |
| 19 | <li class="list-group-item"> | 19 | <li class="list-group-item"> |
| 20 | - <svg-icon icon-class="user" />用户昵称 | 20 | + <svg-icon icon-class="user" />用户姓名 |
| 21 | <div class="pull-right">{{ state.user.nickName }}</div> | 21 | <div class="pull-right">{{ state.user.nickName }}</div> |
| 22 | </li> | 22 | </li> |
| 23 | <li class="list-group-item"> | 23 | <li class="list-group-item"> |
| @@ -47,7 +47,7 @@ | @@ -47,7 +47,7 @@ | ||
| 47 | </el-card> | 47 | </el-card> |
| 48 | </el-col> | 48 | </el-col> |
| 49 | <el-col :span="18" :xs="24"> | 49 | <el-col :span="18" :xs="24"> |
| 50 | - <PanelGroup :listData="listData" /> | 50 | + <PanelGroup :totalList="totalList" /> |
| 51 | <!-- 统计柱状图 --> | 51 | <!-- 统计柱状图 --> |
| 52 | <div class="echarts_box"> | 52 | <div class="echarts_box"> |
| 53 | <div | 53 | <div |
| @@ -87,6 +87,12 @@ const { proxy } = getCurrentInstance(); | @@ -87,6 +87,12 @@ const { proxy } = getCurrentInstance(); | ||
| 87 | const userStore = useUserStore(); | 87 | const userStore = useUserStore(); |
| 88 | const chartRef = ref(null); | 88 | const chartRef = ref(null); |
| 89 | const listData = ref([]); | 89 | const listData = ref([]); |
| 90 | +const totalList = ref({ | ||
| 91 | + 0: 0, | ||
| 92 | + 1: 0, | ||
| 93 | + 2: 0, | ||
| 94 | + 3: 0, | ||
| 95 | +}); | ||
| 90 | const xList = ref([]); | 96 | const xList = ref([]); |
| 91 | const company = ref(""); | 97 | const company = ref(""); |
| 92 | const option = ref({}); | 98 | const option = ref({}); |
| @@ -107,7 +113,7 @@ const state = reactive({ | @@ -107,7 +113,7 @@ const state = reactive({ | ||
| 107 | 113 | ||
| 108 | onMounted(() => { | 114 | onMounted(() => { |
| 109 | getList(); | 115 | getList(); |
| 110 | - if (proxy.$auth.hasRoleOr(["admin", "common"])) { | 116 | + if (proxy.$auth.hasRoleOr(["admin", "associationemployee"])) { |
| 111 | getDeptList(); | 117 | getDeptList(); |
| 112 | } | 118 | } |
| 113 | }); | 119 | }); |
| @@ -151,6 +157,7 @@ const getList = async () => { | @@ -151,6 +157,7 @@ const getList = async () => { | ||
| 151 | for (let i = 0; i < 4; i++) { | 157 | for (let i = 0; i < 4; i++) { |
| 152 | for (let j = 0; j < 13; j++) { | 158 | for (let j = 0; j < 13; j++) { |
| 153 | arrList[i]?.push(newArr[j][i]); | 159 | arrList[i]?.push(newArr[j][i]); |
| 160 | + totalList.value[i] += newArr[j][i]; | ||
| 154 | } | 161 | } |
| 155 | } | 162 | } |
| 156 | listData.value = arrList.map((child, index) => { | 163 | listData.value = arrList.map((child, index) => { |
| @@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
| 8 | :inline="true" | 8 | :inline="true" |
| 9 | label-width="68px" | 9 | label-width="68px" |
| 10 | > | 10 | > |
| 11 | - <el-form-item label="用户姓名" prop="name"> | 11 | + <el-form-item label="车主姓名" prop="name"> |
| 12 | <el-input | 12 | <el-input |
| 13 | v-model="queryParams.name" | 13 | v-model="queryParams.name" |
| 14 | placeholder="请输入名称" | 14 | placeholder="请输入名称" |
| @@ -62,7 +62,6 @@ | @@ -62,7 +62,6 @@ | ||
| 62 | <el-table-column | 62 | <el-table-column |
| 63 | label="车架号" | 63 | label="车架号" |
| 64 | prop="frameNumber" | 64 | prop="frameNumber" |
| 65 | - width="180" | ||
| 66 | align="center" | 65 | align="center" |
| 67 | :show-overflow-tooltip="true" | 66 | :show-overflow-tooltip="true" |
| 68 | /> | 67 | /> |
| @@ -90,7 +89,7 @@ | @@ -90,7 +89,7 @@ | ||
| 90 | prop="associationEmployeeUserName" | 89 | prop="associationEmployeeUserName" |
| 91 | width="120" | 90 | width="120" |
| 92 | /> | 91 | /> |
| 93 | - <el-table-column label="作废备注" fixed="right" width="120" prop="remark"> | 92 | + <el-table-column label="作废备注" width="120" fixed="right" prop="remark"> |
| 94 | <template #default> | 93 | <template #default> |
| 95 | <el-button type="primary">查阅</el-button> | 94 | <el-button type="primary">查阅</el-button> |
| 96 | </template> | 95 | </template> |
| @@ -129,18 +128,6 @@ | @@ -129,18 +128,6 @@ | ||
| 129 | </el-row> | 128 | </el-row> |
| 130 | <el-row> | 129 | <el-row> |
| 131 | <el-col :span="12"> | 130 | <el-col :span="12"> |
| 132 | - <el-form-item label="发动机号" prop="engineNumber"> | ||
| 133 | - <el-input v-model="form.engineNumber" placeholder="无" disabled /> | ||
| 134 | - </el-form-item> | ||
| 135 | - </el-col> | ||
| 136 | - <el-col :span="12"> | ||
| 137 | - <el-form-item label="上年承保公司" prop="sysDeptName"> | ||
| 138 | - <el-input v-model="form.sysDeptName" disabled placeholder="无" /> | ||
| 139 | - </el-form-item> | ||
| 140 | - </el-col> | ||
| 141 | - </el-row> | ||
| 142 | - <el-row> | ||
| 143 | - <el-col :span="12"> | ||
| 144 | <el-form-item label="车主姓名" prop="name"> | 131 | <el-form-item label="车主姓名" prop="name"> |
| 145 | <el-input | 132 | <el-input |
| 146 | v-model="form.name" | 133 | v-model="form.name" |
| @@ -161,80 +148,16 @@ | @@ -161,80 +148,16 @@ | ||
| 161 | </el-row> | 148 | </el-row> |
| 162 | <el-row> | 149 | <el-row> |
| 163 | <el-col :span="12"> | 150 | <el-col :span="12"> |
| 164 | - <el-form-item label="车辆类型" prop="vehicleType"> | ||
| 165 | - <el-input | ||
| 166 | - v-model="form.vehicleType" | ||
| 167 | - disabled | ||
| 168 | - placeholder="请输入登记时间" | ||
| 169 | - /> | ||
| 170 | - </el-form-item> | ||
| 171 | - </el-col> | ||
| 172 | - <el-col :span="12"> | ||
| 173 | - <el-form-item label="车辆使用性质" prop="vehicleNature"> | ||
| 174 | - <el-input | ||
| 175 | - v-model="form.vehicleNature" | ||
| 176 | - disabled | ||
| 177 | - placeholder="请输入办理人" | ||
| 178 | - /> | ||
| 179 | - </el-form-item> | ||
| 180 | - </el-col> | ||
| 181 | - </el-row> | ||
| 182 | - <el-row> | ||
| 183 | - <el-col :span="12"> | ||
| 184 | - <el-form-item label="核定载客数" prop="passengersNumber"> | ||
| 185 | - <el-input | ||
| 186 | - v-model="form.passengersNumber" | ||
| 187 | - disabled | ||
| 188 | - placeholder="请输入办理人" | ||
| 189 | - /> | ||
| 190 | - </el-form-item> | ||
| 191 | - </el-col> | ||
| 192 | - <el-col :span="12"> | ||
| 193 | - <el-form-item label="核定载质量" prop="passengerCapacity"> | ||
| 194 | - <el-input | ||
| 195 | - v-model="form.passengerCapacity" | ||
| 196 | - disabled | ||
| 197 | - placeholder="请输入承保公司" | ||
| 198 | - /> | ||
| 199 | - </el-form-item> | ||
| 200 | - </el-col> | ||
| 201 | - </el-row> | ||
| 202 | - <el-row> | ||
| 203 | - <el-col :span="12"> | ||
| 204 | - <el-form-item label="排量毫升" prop="emissions"> | ||
| 205 | - <el-input | ||
| 206 | - v-model="form.emissions" | ||
| 207 | - disabled | ||
| 208 | - placeholder="请输入办理人" | ||
| 209 | - /> | ||
| 210 | - </el-form-item> | ||
| 211 | - </el-col> | ||
| 212 | - <el-col :span="12"> | ||
| 213 | - <el-form-item label="中文品牌" prop="vehicleBrand"> | ||
| 214 | - <el-input | ||
| 215 | - v-model="form.vehicleBrand" | ||
| 216 | - disabled | ||
| 217 | - placeholder="请输入办理人" | ||
| 218 | - /> | ||
| 219 | - </el-form-item> | ||
| 220 | - </el-col> | ||
| 221 | - </el-row> | ||
| 222 | - <el-row> | ||
| 223 | - <el-col :span="12"> | ||
| 224 | - <el-form-item label="车辆型号" prop="vehicleModel"> | ||
| 225 | - <el-input | ||
| 226 | - v-model="form.vehicleModel" | ||
| 227 | - disabled | ||
| 228 | - placeholder="请输入办理人" | ||
| 229 | - /> | 151 | + <el-form-item label="发动机号" prop="engineNumber"> |
| 152 | + <el-input v-model="form.engineNumber" placeholder="无" disabled /> | ||
| 230 | </el-form-item> | 153 | </el-form-item> |
| 231 | </el-col> | 154 | </el-col> |
| 232 | <el-col :span="12"> | 155 | <el-col :span="12"> |
| 233 | - <el-form-item label="准牵引准质量" prop="tractionMass"> | 156 | + <el-form-item label="上年承保公司" prop="sysDeptName"> |
| 234 | <el-input | 157 | <el-input |
| 235 | - v-model="form.tractionMass" | 158 | + v-model="form.sysDeptName" |
| 236 | disabled | 159 | disabled |
| 237 | - placeholder="请输入办理人" | 160 | + placeholder="请输入上年承保公司" |
| 238 | /> | 161 | /> |
| 239 | </el-form-item> | 162 | </el-form-item> |
| 240 | </el-col> | 163 | </el-col> |
| @@ -242,17 +165,13 @@ | @@ -242,17 +165,13 @@ | ||
| 242 | <el-row> | 165 | <el-row> |
| 243 | <el-col :span="12"> | 166 | <el-col :span="12"> |
| 244 | <el-form-item label="保险需求" prop="requirements"> | 167 | <el-form-item label="保险需求" prop="requirements"> |
| 245 | - <el-input | ||
| 246 | - v-model="form.requirements" | ||
| 247 | - disabled | ||
| 248 | - placeholder="请输入办理人" | ||
| 249 | - /> | 168 | + <el-input v-model="form.requirements" disabled placeholder="无" /> |
| 250 | </el-form-item> | 169 | </el-form-item> |
| 251 | </el-col> | 170 | </el-col> |
| 252 | <el-col :span="12"> | 171 | <el-col :span="12"> |
| 253 | - <el-form-item label="号牌种类" prop="lincensePlateType"> | 172 | + <el-form-item label="使用性质" prop="vehicleNature"> |
| 254 | <el-input | 173 | <el-input |
| 255 | - v-model="form.lincensePlateType" | 174 | + v-model="form.vehicleNature" |
| 256 | disabled | 175 | disabled |
| 257 | placeholder="无" | 176 | placeholder="无" |
| 258 | /> | 177 | /> |
| @@ -290,12 +209,13 @@ function reset() { | @@ -290,12 +209,13 @@ function reset() { | ||
| 290 | proxy.resetForm("policyRef"); | 209 | proxy.resetForm("policyRef"); |
| 291 | } | 210 | } |
| 292 | 211 | ||
| 293 | -/** 修改按钮操作 */ | 212 | +/** 查阅操作 */ |
| 294 | const handleUpdate = async (row) => { | 213 | const handleUpdate = async (row) => { |
| 295 | reset(); | 214 | reset(); |
| 296 | form.value = row; | 215 | form.value = row; |
| 297 | const { data } = await queryDefeatContent({ | 216 | const { data } = await queryDefeatContent({ |
| 298 | processInstanceId: row.processInstanceId, | 217 | processInstanceId: row.processInstanceId, |
| 218 | + type: 2, | ||
| 299 | }); | 219 | }); |
| 300 | form.value.deprecatedReason = data.message; | 220 | form.value.deprecatedReason = data.message; |
| 301 | open.value = true; | 221 | open.value = true; |
| @@ -86,7 +86,7 @@ | @@ -86,7 +86,7 @@ | ||
| 86 | <el-table-column | 86 | <el-table-column |
| 87 | label="办理人" | 87 | label="办理人" |
| 88 | prop="companyEmployeeUserName" | 88 | prop="companyEmployeeUserName" |
| 89 | - width="100" | 89 | + width="150" |
| 90 | align="center" | 90 | align="center" |
| 91 | /> | 91 | /> |
| 92 | <el-table-column label="保单状态" width="100" prop="statue"> | 92 | <el-table-column label="保单状态" width="100" prop="statue"> |
| @@ -142,22 +142,6 @@ | @@ -142,22 +142,6 @@ | ||
| 142 | </el-row> | 142 | </el-row> |
| 143 | <el-row> | 143 | <el-row> |
| 144 | <el-col :span="12"> | 144 | <el-col :span="12"> |
| 145 | - <el-form-item label="发动机号" prop="engineNumber"> | ||
| 146 | - <el-input v-model="form.engineNumber" placeholder="无" disabled /> | ||
| 147 | - </el-form-item> | ||
| 148 | - </el-col> | ||
| 149 | - <el-col :span="12"> | ||
| 150 | - <el-form-item label="号牌种类" prop="lincensePlateType"> | ||
| 151 | - <el-input | ||
| 152 | - v-model="form.lincensePlateType" | ||
| 153 | - disabled | ||
| 154 | - placeholder="无" | ||
| 155 | - /> | ||
| 156 | - </el-form-item> | ||
| 157 | - </el-col> | ||
| 158 | - </el-row> | ||
| 159 | - <el-row> | ||
| 160 | - <el-col :span="12"> | ||
| 161 | <el-form-item label="车主姓名" prop="name"> | 145 | <el-form-item label="车主姓名" prop="name"> |
| 162 | <el-input | 146 | <el-input |
| 163 | v-model="form.name" | 147 | v-model="form.name" |
| @@ -178,98 +162,73 @@ | @@ -178,98 +162,73 @@ | ||
| 178 | </el-row> | 162 | </el-row> |
| 179 | <el-row> | 163 | <el-row> |
| 180 | <el-col :span="12"> | 164 | <el-col :span="12"> |
| 181 | - <el-form-item label="车辆类型" prop="vehicleType"> | ||
| 182 | - <el-input | ||
| 183 | - v-model="form.vehicleType" | ||
| 184 | - disabled | ||
| 185 | - placeholder="请输入登记时间" | ||
| 186 | - /> | ||
| 187 | - </el-form-item> | ||
| 188 | - </el-col> | ||
| 189 | - <el-col :span="12"> | ||
| 190 | - <el-form-item label="车辆使用性质" prop="vehicleNature"> | ||
| 191 | - <el-input | ||
| 192 | - v-model="form.vehicleNature" | ||
| 193 | - disabled | ||
| 194 | - placeholder="请输入办理人" | ||
| 195 | - /> | ||
| 196 | - </el-form-item> | ||
| 197 | - </el-col> | ||
| 198 | - </el-row> | ||
| 199 | - <el-row> | ||
| 200 | - <el-col :span="12"> | ||
| 201 | - <el-form-item label="核定载客数" prop="passengersNumber"> | ||
| 202 | - <el-input | ||
| 203 | - v-model="form.passengersNumber" | ||
| 204 | - disabled | ||
| 205 | - placeholder="请输入办理人" | ||
| 206 | - /> | 165 | + <el-form-item label="发动机号" prop="engineNumber"> |
| 166 | + <el-input v-model="form.engineNumber" placeholder="无" disabled /> | ||
| 207 | </el-form-item> | 167 | </el-form-item> |
| 208 | </el-col> | 168 | </el-col> |
| 209 | <el-col :span="12"> | 169 | <el-col :span="12"> |
| 210 | - <el-form-item label="核定载质量" prop="passengerCapacity"> | 170 | + <el-form-item label="上年承保公司" prop="sysDeptName"> |
| 211 | <el-input | 171 | <el-input |
| 212 | - v-model="form.passengerCapacity" | 172 | + v-model="form.sysDeptName" |
| 213 | disabled | 173 | disabled |
| 214 | - placeholder="请输入承保公司" | 174 | + placeholder="请输入上年承保公司" |
| 215 | /> | 175 | /> |
| 216 | </el-form-item> | 176 | </el-form-item> |
| 217 | </el-col> | 177 | </el-col> |
| 218 | </el-row> | 178 | </el-row> |
| 219 | <el-row> | 179 | <el-row> |
| 220 | <el-col :span="12"> | 180 | <el-col :span="12"> |
| 221 | - <el-form-item label="排量毫升" prop="emissions"> | 181 | + <el-form-item label="分配机制" prop="distributionMechanism"> |
| 222 | <el-input | 182 | <el-input |
| 223 | - v-model="form.emissions" | 183 | + v-model="form.distributionMechanism" |
| 224 | disabled | 184 | disabled |
| 225 | - placeholder="请输入办理人" | 185 | + placeholder="无" |
| 226 | /> | 186 | /> |
| 227 | </el-form-item> | 187 | </el-form-item> |
| 228 | </el-col> | 188 | </el-col> |
| 229 | <el-col :span="12"> | 189 | <el-col :span="12"> |
| 230 | - <el-form-item label="中文品牌" prop="vehicleBrand"> | ||
| 231 | - <el-input | ||
| 232 | - v-model="form.vehicleBrand" | ||
| 233 | - disabled | ||
| 234 | - placeholder="请输入办理人" | ||
| 235 | - /> | 190 | + <el-form-item label="承保公司" prop="companyName"> |
| 191 | + <el-input v-model="form.companyName" disabled placeholder="无" /> | ||
| 236 | </el-form-item> | 192 | </el-form-item> |
| 237 | </el-col> | 193 | </el-col> |
| 238 | </el-row> | 194 | </el-row> |
| 239 | <el-row> | 195 | <el-row> |
| 240 | <el-col :span="12"> | 196 | <el-col :span="12"> |
| 241 | - <el-form-item label="车辆型号" prop="vehicleModel"> | 197 | + <el-form-item label="保险需求" prop="requirements"> |
| 242 | <el-input | 198 | <el-input |
| 243 | - v-model="form.vehicleModel" | 199 | + v-model="form.requirements" |
| 244 | disabled | 200 | disabled |
| 245 | placeholder="请输入办理人" | 201 | placeholder="请输入办理人" |
| 246 | /> | 202 | /> |
| 247 | </el-form-item> | 203 | </el-form-item> |
| 248 | </el-col> | 204 | </el-col> |
| 249 | <el-col :span="12"> | 205 | <el-col :span="12"> |
| 250 | - <el-form-item label="准牵引准质量" prop="tractionMass"> | 206 | + <el-form-item label="使用性质" prop="vehicleNature"> |
| 251 | <el-input | 207 | <el-input |
| 252 | - v-model="form.tractionMass" | 208 | + v-model="form.vehicleNature" |
| 253 | disabled | 209 | disabled |
| 254 | - placeholder="请输入办理人" | 210 | + placeholder="无" |
| 255 | /> | 211 | /> |
| 256 | </el-form-item> | 212 | </el-form-item> |
| 257 | </el-col> | 213 | </el-col> |
| 258 | </el-row> | 214 | </el-row> |
| 259 | <el-row> | 215 | <el-row> |
| 260 | <el-col :span="12"> | 216 | <el-col :span="12"> |
| 261 | - <el-form-item label="保险需求" prop="requirements"> | 217 | + <el-form-item label="强险单号" prop="strongInsurancePolicyNumber"> |
| 262 | <el-input | 218 | <el-input |
| 263 | - v-model="form.requirements" | 219 | + v-model="form.strongInsurancePolicyNumber" |
| 264 | disabled | 220 | disabled |
| 265 | - placeholder="请输入办理人" | 221 | + placeholder="请输入承保单号" |
| 266 | /> | 222 | /> |
| 267 | </el-form-item> | 223 | </el-form-item> |
| 268 | </el-col> | 224 | </el-col> |
| 269 | <el-col :span="12"> | 225 | <el-col :span="12"> |
| 270 | - <el-form-item label="承保单号" prop="policyNumber"> | 226 | + <el-form-item |
| 227 | + label="商险单号" | ||
| 228 | + prop="commercialInsurancePolicyNumber" | ||
| 229 | + > | ||
| 271 | <el-input | 230 | <el-input |
| 272 | - v-model="form.policyNumber" | 231 | + v-model="form.commercialInsurancePolicyNumber" |
| 273 | disabled | 232 | disabled |
| 274 | placeholder="请输入承保单号" | 233 | placeholder="请输入承保单号" |
| 275 | /> | 234 | /> |
| @@ -335,7 +294,10 @@ function lookRemark(row) { | @@ -335,7 +294,10 @@ function lookRemark(row) { | ||
| 335 | reset(); | 294 | reset(); |
| 336 | queryResult({ processInstanceId: row.processInstanceId }).then((res) => { | 295 | queryResult({ processInstanceId: row.processInstanceId }).then((res) => { |
| 337 | form.value = row; | 296 | form.value = row; |
| 338 | - form.value.policyNumber = res?.data?.policyNumber; | 297 | + form.value.strongInsurancePolicyNumber = |
| 298 | + res?.data?.strongInsurancePolicyNumber; | ||
| 299 | + form.value.commercialInsurancePolicyNumber = | ||
| 300 | + res?.data?.commercialInsurancePolicyNumber; | ||
| 339 | form.value.message = res?.data?.message; | 301 | form.value.message = res?.data?.message; |
| 340 | open.value = true; | 302 | open.value = true; |
| 341 | }); | 303 | }); |
| @@ -3,7 +3,12 @@ | @@ -3,7 +3,12 @@ | ||
| 3 | <!-- 表格数据 --> | 3 | <!-- 表格数据 --> |
| 4 | <el-table v-loading="loading" :data="policyList" @row-click="handleUpdate"> | 4 | <el-table v-loading="loading" :data="policyList" @row-click="handleUpdate"> |
| 5 | <el-table-column label="序号" width="55" type="index" /> | 5 | <el-table-column label="序号" width="55" type="index" /> |
| 6 | - <el-table-column label="登记时间" prop="createTime" align="center" /> | 6 | + <el-table-column |
| 7 | + label="登记时间" | ||
| 8 | + width="160" | ||
| 9 | + prop="createTime" | ||
| 10 | + align="center" | ||
| 11 | + /> | ||
| 7 | <el-table-column | 12 | <el-table-column |
| 8 | label="车牌号" | 13 | label="车牌号" |
| 9 | prop="licensePlateNumber" | 14 | prop="licensePlateNumber" |
| @@ -15,24 +20,18 @@ | @@ -15,24 +20,18 @@ | ||
| 15 | align="center" | 20 | align="center" |
| 16 | :show-overflow-tooltip="true" | 21 | :show-overflow-tooltip="true" |
| 17 | /> | 22 | /> |
| 23 | + <el-table-column | ||
| 24 | + label="发动机号" | ||
| 25 | + prop="engineNumber" | ||
| 26 | + align="center" | ||
| 27 | + :show-overflow-tooltip="true" | ||
| 28 | + /> | ||
| 18 | <el-table-column label="车主姓名" prop="name" align="center" /> | 29 | <el-table-column label="车主姓名" prop="name" align="center" /> |
| 19 | <el-table-column label="联系电话" prop="phone" align="center" /> | 30 | <el-table-column label="联系电话" prop="phone" align="center" /> |
| 31 | + <el-table-column label="是否新能源" prop="isNewEnergy" align="center" /> | ||
| 20 | <el-table-column label="上年承保公司" prop="sysDeptName" align="center" /> | 32 | <el-table-column label="上年承保公司" prop="sysDeptName" align="center" /> |
| 21 | - <el-table-column | ||
| 22 | - label="操作" | ||
| 23 | - align="center" | ||
| 24 | - min-width="120" | ||
| 25 | - fixed="right" | ||
| 26 | - > | ||
| 27 | - <template #default="{ row }"> | ||
| 28 | - <el-button | ||
| 29 | - type="primary" | ||
| 30 | - v-hasRole="['companyadmin']" | ||
| 31 | - @click.stop="handleSharing(row.taskId)" | ||
| 32 | - >分配</el-button | ||
| 33 | - > | ||
| 34 | - </template> | ||
| 35 | - </el-table-column> | 33 | + <el-table-column label="保单进度" prop="orderProgress" align="center" /> |
| 34 | + <el-table-column label="保单状态" prop="policyStatus" align="center" /> | ||
| 36 | </el-table> | 35 | </el-table> |
| 37 | 36 | ||
| 38 | <pagination | 37 | <pagination |
| @@ -71,14 +70,14 @@ | @@ -71,14 +70,14 @@ | ||
| 71 | 70 | ||
| 72 | <!-- 编辑对话框 --> | 71 | <!-- 编辑对话框 --> |
| 73 | <el-dialog v-model="open" :title="title" width="700" append-to-body> | 72 | <el-dialog v-model="open" :title="title" width="700" append-to-body> |
| 74 | - <el-form :model="form" :rules="rules" ref="policyRef" label-width="100px"> | 73 | + <el-form :model="form" ref="policyRef" label-width="100px"> |
| 75 | <el-row> | 74 | <el-row> |
| 76 | <el-col :span="12"> | 75 | <el-col :span="12"> |
| 77 | <el-form-item label="车牌号" prop="licensePlateNumber"> | 76 | <el-form-item label="车牌号" prop="licensePlateNumber"> |
| 78 | <el-input | 77 | <el-input |
| 79 | v-model="form.licensePlateNumber" | 78 | v-model="form.licensePlateNumber" |
| 80 | placeholder="请输入车牌号" | 79 | placeholder="请输入车牌号" |
| 81 | - maxlength="30" | 80 | + disabled |
| 82 | /> | 81 | /> |
| 83 | </el-form-item> | 82 | </el-form-item> |
| 84 | </el-col> | 83 | </el-col> |
| @@ -86,8 +85,8 @@ | @@ -86,8 +85,8 @@ | ||
| 86 | <el-form-item label="车架号" prop="frameNumber"> | 85 | <el-form-item label="车架号" prop="frameNumber"> |
| 87 | <el-input | 86 | <el-input |
| 88 | v-model="form.frameNumber" | 87 | v-model="form.frameNumber" |
| 88 | + disabled | ||
| 89 | placeholder="请输入车架号" | 89 | placeholder="请输入车架号" |
| 90 | - maxlength="30" | ||
| 91 | /> | 90 | /> |
| 92 | </el-form-item> | 91 | </el-form-item> |
| 93 | </el-col> | 92 | </el-col> |
| @@ -97,8 +96,8 @@ | @@ -97,8 +96,8 @@ | ||
| 97 | <el-form-item label="车主姓名" prop="name"> | 96 | <el-form-item label="车主姓名" prop="name"> |
| 98 | <el-input | 97 | <el-input |
| 99 | v-model="form.name" | 98 | v-model="form.name" |
| 99 | + disabled | ||
| 100 | placeholder="请输入车主姓名" | 100 | placeholder="请输入车主姓名" |
| 101 | - maxlength="11" | ||
| 102 | /> | 101 | /> |
| 103 | </el-form-item> | 102 | </el-form-item> |
| 104 | </el-col> | 103 | </el-col> |
| @@ -106,27 +105,40 @@ | @@ -106,27 +105,40 @@ | ||
| 106 | <el-form-item label="联系电话" prop="phone"> | 105 | <el-form-item label="联系电话" prop="phone"> |
| 107 | <el-input | 106 | <el-input |
| 108 | v-model="form.phone" | 107 | v-model="form.phone" |
| 108 | + disabled | ||
| 109 | placeholder="请输入联系电话" | 109 | placeholder="请输入联系电话" |
| 110 | - maxlength="50" | ||
| 111 | /> | 110 | /> |
| 112 | </el-form-item> | 111 | </el-form-item> |
| 113 | </el-col> | 112 | </el-col> |
| 114 | </el-row> | 113 | </el-row> |
| 115 | <el-row> | 114 | <el-row> |
| 116 | <el-col :span="12"> | 115 | <el-col :span="12"> |
| 117 | - <el-form-item label="登记时间" prop="createTime"> | ||
| 118 | - <el-input | ||
| 119 | - v-model="form.createTime" | ||
| 120 | - placeholder="请输入登记时间" | ||
| 121 | - /> | 116 | + <el-form-item label="发动机号" prop="engineNumber"> |
| 117 | + <el-input v-model="form.engineNumber" placeholder="无" disabled /> | ||
| 122 | </el-form-item> | 118 | </el-form-item> |
| 123 | </el-col> | 119 | </el-col> |
| 124 | <el-col :span="12"> | 120 | <el-col :span="12"> |
| 125 | <el-form-item label="上年承保公司" prop="sysDeptName"> | 121 | <el-form-item label="上年承保公司" prop="sysDeptName"> |
| 126 | <el-input | 122 | <el-input |
| 127 | v-model="form.sysDeptName" | 123 | v-model="form.sysDeptName" |
| 124 | + disabled | ||
| 128 | placeholder="请输入上年承保公司" | 125 | placeholder="请输入上年承保公司" |
| 129 | - maxlength="50" | 126 | + /> |
| 127 | + </el-form-item> | ||
| 128 | + </el-col> | ||
| 129 | + </el-row> | ||
| 130 | + <el-row> | ||
| 131 | + <el-col :span="12"> | ||
| 132 | + <el-form-item label="保险需求" prop="requirements"> | ||
| 133 | + <el-input v-model="form.requirements" disabled placeholder="无" /> | ||
| 134 | + </el-form-item> | ||
| 135 | + </el-col> | ||
| 136 | + <el-col :span="12"> | ||
| 137 | + <el-form-item label="使用性质" prop="vehicleNature"> | ||
| 138 | + <el-input | ||
| 139 | + v-model="form.vehicleNature" | ||
| 140 | + disabled | ||
| 141 | + placeholder="无" | ||
| 130 | /> | 142 | /> |
| 131 | </el-form-item> | 143 | </el-form-item> |
| 132 | </el-col> | 144 | </el-col> |
| @@ -89,12 +89,7 @@ | @@ -89,12 +89,7 @@ | ||
| 89 | </el-form> | 89 | </el-form> |
| 90 | 90 | ||
| 91 | <!-- 表格数据 --> | 91 | <!-- 表格数据 --> |
| 92 | - <el-table | ||
| 93 | - v-loading="loading" | ||
| 94 | - :data="policyList" | ||
| 95 | - @selection-change="handleSelectionChange" | ||
| 96 | - @row-click="handleUpdate" | ||
| 97 | - > | 92 | + <el-table v-loading="loading" :data="policyList" @row-click="handleUpdate"> |
| 98 | <el-table-column label="序号" type="index" width="55" /> | 93 | <el-table-column label="序号" type="index" width="55" /> |
| 99 | <el-table-column | 94 | <el-table-column |
| 100 | label="登记时间" | 95 | label="登记时间" |
| @@ -155,7 +150,7 @@ | @@ -155,7 +150,7 @@ | ||
| 155 | <el-table-column | 150 | <el-table-column |
| 156 | label="办理人" | 151 | label="办理人" |
| 157 | prop="companyEmployeeUserName" | 152 | prop="companyEmployeeUserName" |
| 158 | - width="100" | 153 | + width="150" |
| 159 | align="center" | 154 | align="center" |
| 160 | /> | 155 | /> |
| 161 | <el-table-column | 156 | <el-table-column |
| @@ -164,6 +159,22 @@ | @@ -164,6 +159,22 @@ | ||
| 164 | prop="orderProgress" | 159 | prop="orderProgress" |
| 165 | align="center" | 160 | align="center" |
| 166 | /> | 161 | /> |
| 162 | + <el-table-column | ||
| 163 | + label="操作" | ||
| 164 | + v-hasRole="['companyadmin']" | ||
| 165 | + align="center" | ||
| 166 | + min-width="120" | ||
| 167 | + fixed="right" | ||
| 168 | + > | ||
| 169 | + <template #default="{ row }"> | ||
| 170 | + <el-button | ||
| 171 | + type="primary" | ||
| 172 | + v-show="row.orderProgress !== '已承接'" | ||
| 173 | + @click.stop="handleTransfer(row.taskId)" | ||
| 174 | + >分配/转办</el-button | ||
| 175 | + > | ||
| 176 | + </template> | ||
| 177 | + </el-table-column> | ||
| 167 | </el-table> | 178 | </el-table> |
| 168 | 179 | ||
| 169 | <pagination | 180 | <pagination |
| @@ -174,6 +185,32 @@ | @@ -174,6 +185,32 @@ | ||
| 174 | @pagination="getList" | 185 | @pagination="getList" |
| 175 | /> | 186 | /> |
| 176 | 187 | ||
| 188 | + <!-- 转办分配对话框 --> | ||
| 189 | + <el-dialog | ||
| 190 | + v-model="transferShow" | ||
| 191 | + title="请选择人员:" | ||
| 192 | + width="500" | ||
| 193 | + append-to-body | ||
| 194 | + > | ||
| 195 | + <div class="company_box"> | ||
| 196 | + <el-radio-group v-model="transferForm.username"> | ||
| 197 | + <el-radio | ||
| 198 | + v-for="item in transferOptions" | ||
| 199 | + :key="item.userName" | ||
| 200 | + :label="item.userName" | ||
| 201 | + >{{ item.nickName }}</el-radio | ||
| 202 | + > | ||
| 203 | + </el-radio-group> | ||
| 204 | + <div v-show="transferOptions.length === 0">暂无其他员工</div> | ||
| 205 | + </div> | ||
| 206 | + <template #footer> | ||
| 207 | + <div class="dialog-footer"> | ||
| 208 | + <el-button @click="transferShow = false">取消</el-button> | ||
| 209 | + <el-button type="primary" @click="submitTransfer">确定</el-button> | ||
| 210 | + </div> | ||
| 211 | + </template> | ||
| 212 | + </el-dialog> | ||
| 213 | + | ||
| 177 | <!-- 编辑对话框 --> | 214 | <!-- 编辑对话框 --> |
| 178 | <el-dialog v-model="open" title="保单信息" width="700" append-to-body> | 215 | <el-dialog v-model="open" title="保单信息" width="700" append-to-body> |
| 179 | <el-form :model="form" ref="policyRef" label-width="100px"> | 216 | <el-form :model="form" ref="policyRef" label-width="100px"> |
| @@ -199,22 +236,6 @@ | @@ -199,22 +236,6 @@ | ||
| 199 | </el-row> | 236 | </el-row> |
| 200 | <el-row> | 237 | <el-row> |
| 201 | <el-col :span="12"> | 238 | <el-col :span="12"> |
| 202 | - <el-form-item label="发动机号" prop="engineNumber"> | ||
| 203 | - <el-input v-model="form.engineNumber" placeholder="无" disabled /> | ||
| 204 | - </el-form-item> | ||
| 205 | - </el-col> | ||
| 206 | - <el-col :span="12"> | ||
| 207 | - <el-form-item label="排放毫升量" prop="emissions"> | ||
| 208 | - <el-input | ||
| 209 | - v-model="form.emissions" | ||
| 210 | - disabled | ||
| 211 | - placeholder="请输入车架号" | ||
| 212 | - /> | ||
| 213 | - </el-form-item> | ||
| 214 | - </el-col> | ||
| 215 | - </el-row> | ||
| 216 | - <el-row> | ||
| 217 | - <el-col :span="12"> | ||
| 218 | <el-form-item label="车主姓名" prop="name"> | 239 | <el-form-item label="车主姓名" prop="name"> |
| 219 | <el-input | 240 | <el-input |
| 220 | v-model="form.name" | 241 | v-model="form.name" |
| @@ -235,12 +256,8 @@ | @@ -235,12 +256,8 @@ | ||
| 235 | </el-row> | 256 | </el-row> |
| 236 | <el-row> | 257 | <el-row> |
| 237 | <el-col :span="12"> | 258 | <el-col :span="12"> |
| 238 | - <el-form-item label="登记时间" prop="createTime"> | ||
| 239 | - <el-input | ||
| 240 | - v-model="form.createTime" | ||
| 241 | - disabled | ||
| 242 | - placeholder="请输入登记时间" | ||
| 243 | - /> | 259 | + <el-form-item label="发动机号" prop="engineNumber"> |
| 260 | + <el-input v-model="form.engineNumber" placeholder="无" disabled /> | ||
| 244 | </el-form-item> | 261 | </el-form-item> |
| 245 | </el-col> | 262 | </el-col> |
| 246 | <el-col :span="12"> | 263 | <el-col :span="12"> |
| @@ -255,22 +272,6 @@ | @@ -255,22 +272,6 @@ | ||
| 255 | </el-row> | 272 | </el-row> |
| 256 | <el-row> | 273 | <el-row> |
| 257 | <el-col :span="12"> | 274 | <el-col :span="12"> |
| 258 | - <el-form-item label="核定载质量" prop="passengerCapacity"> | ||
| 259 | - <el-input | ||
| 260 | - v-model="form.passengerCapacity" | ||
| 261 | - disabled | ||
| 262 | - placeholder="无" | ||
| 263 | - /> | ||
| 264 | - </el-form-item> | ||
| 265 | - </el-col> | ||
| 266 | - <el-col :span="12"> | ||
| 267 | - <el-form-item label="核定载人数" prop="passengersNumber"> | ||
| 268 | - <el-input v-model="form.passengersNumber" disabled /> | ||
| 269 | - </el-form-item> | ||
| 270 | - </el-col> | ||
| 271 | - </el-row> | ||
| 272 | - <el-row> | ||
| 273 | - <el-col :span="12"> | ||
| 274 | <el-form-item label="分配机制" prop="distributionMechanism"> | 275 | <el-form-item label="分配机制" prop="distributionMechanism"> |
| 275 | <el-input | 276 | <el-input |
| 276 | v-model="form.distributionMechanism" | 277 | v-model="form.distributionMechanism" |
| @@ -287,38 +288,11 @@ | @@ -287,38 +288,11 @@ | ||
| 287 | </el-row> | 288 | </el-row> |
| 288 | <el-row> | 289 | <el-row> |
| 289 | <el-col :span="12"> | 290 | <el-col :span="12"> |
| 290 | - <el-form-item label="车辆品牌" prop="vehicleBrand"> | ||
| 291 | - <el-input | ||
| 292 | - v-model="form.vehicleBrand" | ||
| 293 | - disabled | ||
| 294 | - placeholder="车辆品牌" | ||
| 295 | - /> | ||
| 296 | - </el-form-item> | ||
| 297 | - </el-col> | ||
| 298 | - <el-col :span="12"> | ||
| 299 | - <el-form-item label="车辆型号" prop="vehicleModel"> | ||
| 300 | - <el-input v-model="form.vehicleModel" disabled placeholder="无" /> | ||
| 301 | - </el-form-item> | ||
| 302 | - </el-col> | ||
| 303 | - </el-row> | ||
| 304 | - <el-row> | ||
| 305 | - <el-col :span="12"> | ||
| 306 | <el-form-item label="保险需求" prop="requirements"> | 291 | <el-form-item label="保险需求" prop="requirements"> |
| 307 | <el-input v-model="form.requirements" disabled placeholder="无" /> | 292 | <el-input v-model="form.requirements" disabled placeholder="无" /> |
| 308 | </el-form-item> | 293 | </el-form-item> |
| 309 | </el-col> | 294 | </el-col> |
| 310 | <el-col :span="12"> | 295 | <el-col :span="12"> |
| 311 | - <el-form-item label="号牌种类" prop="lincensePlateType"> | ||
| 312 | - <el-input | ||
| 313 | - v-model="form.lincensePlateType" | ||
| 314 | - disabled | ||
| 315 | - placeholder="无" | ||
| 316 | - /> | ||
| 317 | - </el-form-item> | ||
| 318 | - </el-col> | ||
| 319 | - </el-row> | ||
| 320 | - <el-row> | ||
| 321 | - <el-col :span="12"> | ||
| 322 | <el-form-item label="使用性质" prop="vehicleNature"> | 296 | <el-form-item label="使用性质" prop="vehicleNature"> |
| 323 | <el-input | 297 | <el-input |
| 324 | v-model="form.vehicleNature" | 298 | v-model="form.vehicleNature" |
| @@ -327,11 +301,6 @@ | @@ -327,11 +301,6 @@ | ||
| 327 | /> | 301 | /> |
| 328 | </el-form-item> | 302 | </el-form-item> |
| 329 | </el-col> | 303 | </el-col> |
| 330 | - <el-col :span="12"> | ||
| 331 | - <el-form-item label="车辆类型" prop="vehicleType"> | ||
| 332 | - <el-input v-model="form.vehicleType" disabled placeholder="无" /> | ||
| 333 | - </el-form-item> | ||
| 334 | - </el-col> | ||
| 335 | </el-row> | 304 | </el-row> |
| 336 | </el-form> | 305 | </el-form> |
| 337 | </el-dialog> | 306 | </el-dialog> |
| @@ -339,13 +308,15 @@ | @@ -339,13 +308,15 @@ | ||
| 339 | </template> | 308 | </template> |
| 340 | 309 | ||
| 341 | <script setup> | 310 | <script setup> |
| 342 | -import { queryOngoingList } from "@/api/policy"; | ||
| 343 | -import { get } from "@vueuse/core"; | 311 | +import { queryOngoingList, getUserList, transfer } from "@/api/policy"; |
| 344 | const { proxy } = getCurrentInstance(); | 312 | const { proxy } = getCurrentInstance(); |
| 345 | const loading = ref(false); | 313 | const loading = ref(false); |
| 346 | const total = ref(5); | 314 | const total = ref(5); |
| 347 | const open = ref(false); | 315 | const open = ref(false); |
| 348 | const form = ref({}); | 316 | const form = ref({}); |
| 317 | +const transferForm = ref({}); | ||
| 318 | +const transferShow = ref(false); | ||
| 319 | +const transferOptions = ref([]); | ||
| 349 | const showSearch = ref(true); | 320 | const showSearch = ref(true); |
| 350 | const queryParams = reactive({ | 321 | const queryParams = reactive({ |
| 351 | pageNum: 1, | 322 | pageNum: 1, |
| @@ -395,14 +366,19 @@ const statusOption = ref([ | @@ -395,14 +366,19 @@ const statusOption = ref([ | ||
| 395 | ]); | 366 | ]); |
| 396 | const policyList = ref([]); | 367 | const policyList = ref([]); |
| 397 | 368 | ||
| 398 | -/** 多选框选中数据 */ | ||
| 399 | -function handleSelectionChange(selection) { | ||
| 400 | - // ids.value = selection.map(item => item.roleId); | ||
| 401 | - // single.value = selection.length != 1; | ||
| 402 | - // multiple.value = !selection.length; | ||
| 403 | - console.log(selection); | ||
| 404 | -} | 369 | +// 获取人员列表 |
| 370 | +const getUser = async () => { | ||
| 371 | + const { data } = await getUserList(); | ||
| 372 | + transferOptions.value = data; | ||
| 373 | +}; | ||
| 374 | +// 分配人员 | ||
| 375 | +const handleTransfer = (id) => { | ||
| 376 | + transferForm.value.taskId = id; | ||
| 377 | + getUser(); | ||
| 378 | + transferShow.value = true; | ||
| 379 | +}; | ||
| 405 | 380 | ||
| 381 | +// 获取进行中列表 | ||
| 406 | const getList = async () => { | 382 | const getList = async () => { |
| 407 | loading.value = true; | 383 | loading.value = true; |
| 408 | const res = await queryOngoingList(queryParams); | 384 | const res = await queryOngoingList(queryParams); |
| @@ -433,6 +409,19 @@ function resetQuery() { | @@ -433,6 +409,19 @@ function resetQuery() { | ||
| 433 | proxy.resetForm("queryRef"); | 409 | proxy.resetForm("queryRef"); |
| 434 | handleQuery(); | 410 | handleQuery(); |
| 435 | } | 411 | } |
| 412 | + | ||
| 413 | +/** 提交通过分配转办人员 */ | ||
| 414 | +function submitTransfer() { | ||
| 415 | + const data = { | ||
| 416 | + username: transferForm.value.username, | ||
| 417 | + }; | ||
| 418 | + const taskId = transferForm.value.taskId; | ||
| 419 | + transfer(data, taskId).then((res) => { | ||
| 420 | + transferShow.value = false; | ||
| 421 | + getList(); | ||
| 422 | + proxy.$modal.msgSuccess("保单已分配成功"); | ||
| 423 | + }); | ||
| 424 | +} | ||
| 436 | getList(); | 425 | getList(); |
| 437 | </script> | 426 | </script> |
| 438 | 427 |
| 1 | <template> | 1 | <template> |
| 2 | <div class="app-container"> | 2 | <div class="app-container"> |
| 3 | <!-- 表格数据 --> | 3 | <!-- 表格数据 --> |
| 4 | - <el-table v-loading="loading" :data="policyList"> | 4 | + <el-table v-loading="loading" :data="policyList" @row-click="handleTask"> |
| 5 | <el-table-column label="序号" width="55" type="index" /> | 5 | <el-table-column label="序号" width="55" type="index" /> |
| 6 | - <el-table-column label="登记时间" width="160" align="center"> | ||
| 7 | - <template #default="{ row }"> | ||
| 8 | - <span>{{ row.initialRegistration || row.createTime }}</span> | ||
| 9 | - </template> | ||
| 10 | - </el-table-column> | ||
| 11 | - | 6 | + <el-table-column |
| 7 | + label="登记时间" | ||
| 8 | + prop="createTime" | ||
| 9 | + width="160" | ||
| 10 | + align="center" | ||
| 11 | + /> | ||
| 12 | <el-table-column | 12 | <el-table-column |
| 13 | label="车牌号" | 13 | label="车牌号" |
| 14 | prop="licensePlateNumber" | 14 | prop="licensePlateNumber" |
| @@ -16,80 +16,64 @@ | @@ -16,80 +16,64 @@ | ||
| 16 | align="center" | 16 | align="center" |
| 17 | /> | 17 | /> |
| 18 | <el-table-column | 18 | <el-table-column |
| 19 | - label="车架号" | 19 | + label="车辆识别代号" |
| 20 | width="180" | 20 | width="180" |
| 21 | prop="frameNumber" | 21 | prop="frameNumber" |
| 22 | align="center" | 22 | align="center" |
| 23 | :show-overflow-tooltip="true" | 23 | :show-overflow-tooltip="true" |
| 24 | /> | 24 | /> |
| 25 | <el-table-column | 25 | <el-table-column |
| 26 | - label="车主姓名" | ||
| 27 | - prop="name" | ||
| 28 | - width="100" | ||
| 29 | - align="center" | ||
| 30 | - /> | ||
| 31 | - <el-table-column | ||
| 32 | - label="联系电话" | ||
| 33 | - prop="phone" | 26 | + label="发动机号" |
| 34 | width="180" | 27 | width="180" |
| 28 | + prop="engineNumber" | ||
| 35 | align="center" | 29 | align="center" |
| 30 | + :show-overflow-tooltip="true" | ||
| 36 | /> | 31 | /> |
| 37 | <el-table-column | 32 | <el-table-column |
| 38 | - label="上年承保公司" | ||
| 39 | - prop="sysDeptName" | ||
| 40 | - width="150" | ||
| 41 | - align="center" | ||
| 42 | - /> | ||
| 43 | - <el-table-column | ||
| 44 | - v-show="hasCompanyadmin" | ||
| 45 | - label="分配机制" | ||
| 46 | - prop="distributionMechanism" | 33 | + label="是否新能源" |
| 34 | + prop="isNewEnergy" | ||
| 47 | width="150" | 35 | width="150" |
| 48 | align="center" | 36 | align="center" |
| 49 | /> | 37 | /> |
| 50 | <el-table-column | 38 | <el-table-column |
| 51 | - label="订单分配时间" | ||
| 52 | - prop="distributionTime" | ||
| 53 | - width="160" | ||
| 54 | - align="center" | ||
| 55 | - /> | ||
| 56 | - <el-table-column | ||
| 57 | - label="保单进度" | ||
| 58 | - prop="orderProgress" | ||
| 59 | - width="150" | 39 | + label="车主姓名" |
| 40 | + prop="name" | ||
| 41 | + width="100" | ||
| 60 | align="center" | 42 | align="center" |
| 61 | /> | 43 | /> |
| 62 | <el-table-column | 44 | <el-table-column |
| 63 | - label="承接时间" | ||
| 64 | - prop="companyEmployeeUndertakeTime" | ||
| 65 | - width="160" | 45 | + label="联系电话" |
| 46 | + prop="phone" | ||
| 47 | + width="180" | ||
| 66 | align="center" | 48 | align="center" |
| 67 | /> | 49 | /> |
| 68 | <el-table-column | 50 | <el-table-column |
| 69 | - v-show="hasCompanyadmin" | ||
| 70 | - label="分配人" | ||
| 71 | - prop="associationEmployeeUserName" | 51 | + label="上年承保公司" |
| 52 | + prop="sysDeptName" | ||
| 72 | width="150" | 53 | width="150" |
| 73 | align="center" | 54 | align="center" |
| 74 | /> | 55 | /> |
| 75 | <el-table-column | 56 | <el-table-column |
| 76 | - v-show="hasCompanyadmin" | ||
| 77 | - label="承接人" | ||
| 78 | - prop="companyEmployeeUserName" | ||
| 79 | - width="150" | ||
| 80 | - align="center" | ||
| 81 | - /> | 57 | + v-hasRole="['associationemployee']" |
| 58 | + label="保单状态" | ||
| 59 | + width="100" | ||
| 60 | + prop="statue" | ||
| 61 | + > | ||
| 62 | + <template #default="{ row }"> | ||
| 63 | + {{ row.policyStatus || "待处理" }} | ||
| 64 | + </template> | ||
| 65 | + </el-table-column> | ||
| 82 | <el-table-column | 66 | <el-table-column |
| 83 | label="操作" | 67 | label="操作" |
| 84 | align="center" | 68 | align="center" |
| 85 | - min-width="380" | 69 | + min-width="280" |
| 86 | fixed="right" | 70 | fixed="right" |
| 87 | > | 71 | > |
| 88 | <template #default="{ row }"> | 72 | <template #default="{ row }"> |
| 89 | <el-button | 73 | <el-button |
| 90 | type="primary" | 74 | type="primary" |
| 91 | v-hasPermi="['policy:pending:continue']" | 75 | v-hasPermi="['policy:pending:continue']" |
| 92 | - @click.stop="handleContinue(row)" | 76 | + @click="handleContinue(row)" |
| 93 | >{{ | 77 | >{{ |
| 94 | row.orderProgress === "已承接" ? "承接回馈" : "承接" | 78 | row.orderProgress === "已承接" ? "承接回馈" : "承接" |
| 95 | }}</el-button | 79 | }}</el-button |
| @@ -97,53 +81,59 @@ | @@ -97,53 +81,59 @@ | ||
| 97 | <el-button | 81 | <el-button |
| 98 | type="primary" | 82 | type="primary" |
| 99 | v-show=" | 83 | v-show=" |
| 100 | - row.policyStatus !== '疑难件' && row.orderProgress === '已承接' | 84 | + row.policyStatus !== '问题件' && row.orderProgress === '已承接' |
| 101 | " | 85 | " |
| 102 | v-hasPermi="['policy:pending:troubleshooting']" | 86 | v-hasPermi="['policy:pending:troubleshooting']" |
| 103 | - @click.stop="handleTroubleshooting(row.taskId)" | ||
| 104 | - >疑难件</el-button | 87 | + @click="handleTroubleshooting(row.taskId)" |
| 88 | + >问题件</el-button | ||
| 105 | > | 89 | > |
| 106 | <el-button | 90 | <el-button |
| 107 | type="primary" | 91 | type="primary" |
| 108 | - v-hasPermi="['policy:pending:sharing']" | ||
| 109 | - @click.stop="handleSharing(row.taskId)" | 92 | + v-hasRole="['companyadmin']" |
| 93 | + @click="handleSharing(row.taskId)" | ||
| 110 | >分配</el-button | 94 | >分配</el-button |
| 111 | > | 95 | > |
| 112 | <el-button | 96 | <el-button |
| 113 | type="primary" | 97 | type="primary" |
| 114 | v-show="row.orderProgress !== '已承接'" | 98 | v-show="row.orderProgress !== '已承接'" |
| 115 | v-hasPermi="['policy:pending:transfer']" | 99 | v-hasPermi="['policy:pending:transfer']" |
| 116 | - @click.stop="handleSharing(row.taskId)" | 100 | + @click="handleSharing(row.taskId)" |
| 117 | >转办</el-button | 101 | >转办</el-button |
| 118 | > | 102 | > |
| 119 | <el-button | 103 | <el-button |
| 120 | type="primary" | 104 | type="primary" |
| 121 | - v-show="hasRole" | ||
| 122 | - @click.stop="handleSuccess('0', row.taskId)" | ||
| 123 | - >通过</el-button | ||
| 124 | - > | ||
| 125 | - <el-button | ||
| 126 | - type="primary" | ||
| 127 | - v-show="hasRole" | ||
| 128 | - @click.stop="handleFallback('1', row.taskId)" | ||
| 129 | - >退回</el-button | 105 | + v-show=" |
| 106 | + row.policyStatus !== '问题件' && | ||
| 107 | + checkRole(['associationemployee']) | ||
| 108 | + " | ||
| 109 | + @click="handleUpdate(row)" | ||
| 110 | + >审核</el-button | ||
| 130 | > | 111 | > |
| 131 | <el-button | 112 | <el-button |
| 132 | type="primary" | 113 | type="primary" |
| 133 | - v-show="hasRole" | ||
| 134 | - @click.stop="handleUpdate(row)" | ||
| 135 | - >修改</el-button | 114 | + v-show=" |
| 115 | + row.policyStatus === '问题件' && | ||
| 116 | + checkRole(['associationemployee']) | ||
| 117 | + " | ||
| 118 | + @click="lookReason(row)" | ||
| 119 | + >查询</el-button | ||
| 136 | > | 120 | > |
| 137 | <el-button | 121 | <el-button |
| 138 | type="primary" | 122 | type="primary" |
| 139 | - v-show="hasRole" | ||
| 140 | - @click.stop="handleVoid('2', row.taskId)" | 123 | + v-show=" |
| 124 | + row.policyStatus === '问题件' && | ||
| 125 | + checkRole(['associationemployee']) | ||
| 126 | + " | ||
| 127 | + @click="handleVoid('2')" | ||
| 141 | >作废</el-button | 128 | >作废</el-button |
| 142 | > | 129 | > |
| 143 | <el-button | 130 | <el-button |
| 144 | type="primary" | 131 | type="primary" |
| 145 | - v-show="hasRole" | ||
| 146 | - @click.stop="handleAuthCompany('0', row.taskId)" | 132 | + v-show=" |
| 133 | + row.policyStatus === '问题件' && | ||
| 134 | + checkRole(['associationemployee']) | ||
| 135 | + " | ||
| 136 | + @click="handleAuthCompany('0')" | ||
| 147 | >分配</el-button | 137 | >分配</el-button |
| 148 | > | 138 | > |
| 149 | </template> | 139 | </template> |
| @@ -159,10 +149,10 @@ | @@ -159,10 +149,10 @@ | ||
| 159 | @pagination="getList" | 149 | @pagination="getList" |
| 160 | /> | 150 | /> |
| 161 | 151 | ||
| 162 | - <!-- 表单作废对话框 --> | 152 | + <!-- 表单作废,退回。问题件对话框 --> |
| 163 | <el-dialog | 153 | <el-dialog |
| 164 | v-model="deprecatedShow" | 154 | v-model="deprecatedShow" |
| 165 | - title="温馨提示:该保单作废后车牌号、车架号在本自然年度无法重新提交" | 155 | + :title="activeTitle" |
| 166 | width="500" | 156 | width="500" |
| 167 | append-to-body | 157 | append-to-body |
| 168 | > | 158 | > |
| @@ -195,14 +185,16 @@ | @@ -195,14 +185,16 @@ | ||
| 195 | /> | 185 | /> |
| 196 | <el-button type="primary" @click="getDeptList">查询</el-button> | 186 | <el-button type="primary" @click="getDeptList">查询</el-button> |
| 197 | </div> | 187 | </div> |
| 198 | - <el-radio-group v-model="companyForm.deptId"> | ||
| 199 | - <el-radio | ||
| 200 | - v-for="item in deptOptions" | ||
| 201 | - :key="item.deptId" | ||
| 202 | - :label="item.deptId" | ||
| 203 | - >{{ item.deptName }}</el-radio | ||
| 204 | - > | ||
| 205 | - </el-radio-group> | 188 | + <div class="company_content"> |
| 189 | + <el-radio-group v-model="companyForm.deptId"> | ||
| 190 | + <el-radio | ||
| 191 | + v-for="item in deptOptions" | ||
| 192 | + :key="item.deptId" | ||
| 193 | + :label="item.deptId" | ||
| 194 | + >{{ item.deptName }}</el-radio | ||
| 195 | + > | ||
| 196 | + </el-radio-group> | ||
| 197 | + </div> | ||
| 206 | </div> | 198 | </div> |
| 207 | <template #footer> | 199 | <template #footer> |
| 208 | <div class="dialog-footer"> | 200 | <div class="dialog-footer"> |
| @@ -225,14 +217,14 @@ | @@ -225,14 +217,14 @@ | ||
| 225 | v-for="item in transferOptions" | 217 | v-for="item in transferOptions" |
| 226 | :key="item.userName" | 218 | :key="item.userName" |
| 227 | :label="item.userName" | 219 | :label="item.userName" |
| 228 | - >{{ item.userName }}</el-radio | 220 | + >{{ item.nickName }}</el-radio |
| 229 | > | 221 | > |
| 230 | </el-radio-group> | 222 | </el-radio-group> |
| 231 | <div v-show="transferOptions.length === 0">暂无其他员工</div> | 223 | <div v-show="transferOptions.length === 0">暂无其他员工</div> |
| 232 | </div> | 224 | </div> |
| 233 | <template #footer> | 225 | <template #footer> |
| 234 | <div class="dialog-footer"> | 226 | <div class="dialog-footer"> |
| 235 | - <el-button @click="companyShow = false">取消</el-button> | 227 | + <el-button @click="transferShow = false">取消</el-button> |
| 236 | <el-button type="primary" @click="submitTransfer">确定</el-button> | 228 | <el-button type="primary" @click="submitTransfer">确定</el-button> |
| 237 | </div> | 229 | </div> |
| 238 | </template> | 230 | </template> |
| @@ -248,14 +240,14 @@ | @@ -248,14 +240,14 @@ | ||
| 248 | <el-form :model="FeedbackForm" ref="policyRef" label-width="100px"> | 240 | <el-form :model="FeedbackForm" ref="policyRef" label-width="100px"> |
| 249 | <el-form-item label="商险单号" prop="progress"> | 241 | <el-form-item label="商险单号" prop="progress"> |
| 250 | <el-input | 242 | <el-input |
| 251 | - v-model="FeedbackForm.shoppolicynumber" | 243 | + v-model="FeedbackForm.commercialinsurancepolicynumber" |
| 252 | placeholder="请输入保单号" | 244 | placeholder="请输入保单号" |
| 253 | :disabled="hasRole" | 245 | :disabled="hasRole" |
| 254 | /> | 246 | /> |
| 255 | </el-form-item> | 247 | </el-form-item> |
| 256 | - <el-form-item label="交强险单号" prop="progress"> | 248 | + <el-form-item label="强险单号" prop="progress"> |
| 257 | <el-input | 249 | <el-input |
| 258 | - v-model="FeedbackForm.policynumber" | 250 | + v-model="FeedbackForm.stronginsurancepolicynumber" |
| 259 | placeholder="请输入保单号" | 251 | placeholder="请输入保单号" |
| 260 | :disabled="hasRole" | 252 | :disabled="hasRole" |
| 261 | /> | 253 | /> |
| @@ -272,6 +264,15 @@ | @@ -272,6 +264,15 @@ | ||
| 272 | </template> | 264 | </template> |
| 273 | </el-dialog> | 265 | </el-dialog> |
| 274 | 266 | ||
| 267 | + <!-- 查询问题件弹出框 --> | ||
| 268 | + <el-dialog v-model="showIssue" title="保单信息" width="700" append-to-body> | ||
| 269 | + <el-form :model="IssueForm" ref="policyRef" label-width="100px"> | ||
| 270 | + <el-form-item label="问题件原因" prop="progress"> | ||
| 271 | + <QuillEditor :value="IssueForm.deprecatedReason" /> | ||
| 272 | + </el-form-item> | ||
| 273 | + </el-form> | ||
| 274 | + </el-dialog> | ||
| 275 | + | ||
| 275 | <!-- 编辑对话框 --> | 276 | <!-- 编辑对话框 --> |
| 276 | <el-dialog v-model="open" title="保单信息" width="700" append-to-body> | 277 | <el-dialog v-model="open" title="保单信息" width="700" append-to-body> |
| 277 | <el-form :model="form" ref="policyRef" label-width="100px"> | 278 | <el-form :model="form" ref="policyRef" label-width="100px"> |
| @@ -286,7 +287,7 @@ | @@ -286,7 +287,7 @@ | ||
| 286 | </el-form-item> | 287 | </el-form-item> |
| 287 | </el-col> | 288 | </el-col> |
| 288 | <el-col :span="12"> | 289 | <el-col :span="12"> |
| 289 | - <el-form-item label="车架号" prop="frameNumber"> | 290 | + <el-form-item label="车辆识别号" prop="frameNumber"> |
| 290 | <el-input | 291 | <el-input |
| 291 | v-model="form.frameNumber" | 292 | v-model="form.frameNumber" |
| 292 | :disabled="!hasRole" | 293 | :disabled="!hasRole" |
| @@ -317,17 +318,17 @@ | @@ -317,17 +318,17 @@ | ||
| 317 | </el-row> | 318 | </el-row> |
| 318 | <el-row> | 319 | <el-row> |
| 319 | <el-col :span="12"> | 320 | <el-col :span="12"> |
| 320 | - <el-form-item label="车辆类型" prop="vehicleType"> | 321 | + <el-form-item label="上年承保公司" prop="sysDeptId"> |
| 321 | <el-select | 322 | <el-select |
| 322 | - v-model="form.vehicleTypeId" | 323 | + v-model="form.sysDeptId" |
| 323 | :disabled="!hasRole" | 324 | :disabled="!hasRole" |
| 324 | style="width: 230px" | 325 | style="width: 230px" |
| 325 | > | 326 | > |
| 326 | <el-option | 327 | <el-option |
| 327 | - v-for="item in carTypeOption" | ||
| 328 | - :key="item.id" | ||
| 329 | - :label="item.name" | ||
| 330 | - :value="item.id" | 328 | + v-for="item in deptOptions" |
| 329 | + :key="item.deptId" | ||
| 330 | + :label="item.deptName" | ||
| 331 | + :value="item.deptId" | ||
| 331 | /> | 332 | /> |
| 332 | </el-select> | 333 | </el-select> |
| 333 | </el-form-item> | 334 | </el-form-item> |
| @@ -351,43 +352,23 @@ | @@ -351,43 +352,23 @@ | ||
| 351 | </el-row> | 352 | </el-row> |
| 352 | <el-row> | 353 | <el-row> |
| 353 | <el-col :span="12"> | 354 | <el-col :span="12"> |
| 354 | - <el-form-item label="核定载客数" prop="passengersNumber"> | 355 | + <el-form-item label="发动机号" prop="engineNumber"> |
| 355 | <el-input | 356 | <el-input |
| 356 | - v-model="form.passengersNumber" | 357 | + v-model="form.engineNumber" |
| 357 | :disabled="!hasRole" | 358 | :disabled="!hasRole" |
| 358 | - placeholder="请输入核定载客数" | 359 | + placeholder="请输入发动机号" |
| 359 | /> | 360 | /> |
| 360 | </el-form-item> | 361 | </el-form-item> |
| 361 | </el-col> | 362 | </el-col> |
| 362 | <el-col :span="12"> | 363 | <el-col :span="12"> |
| 363 | - <el-form-item label="核定载质量" prop="passengerCapacity"> | ||
| 364 | - <el-input | ||
| 365 | - v-model="form.passengerCapacity" | ||
| 366 | - :disabled="!hasRole" | ||
| 367 | - placeholder="请输入核定载质量" | ||
| 368 | - /> | ||
| 369 | - </el-form-item> | ||
| 370 | - </el-col> | ||
| 371 | - </el-row> | ||
| 372 | - <el-row> | ||
| 373 | - <el-col :span="12"> | ||
| 374 | - <el-form-item label="排量毫升" prop="emissions"> | ||
| 375 | - <el-input | ||
| 376 | - v-model="form.emissions" | ||
| 377 | - :disabled="!hasRole" | ||
| 378 | - placeholder="请输入排量毫升" | ||
| 379 | - /> | ||
| 380 | - </el-form-item> | ||
| 381 | - </el-col> | ||
| 382 | - <el-col v-if="isCustom" :span="12"> | ||
| 383 | - <el-form-item label="中文品牌" prop="vehicleBrand"> | 364 | + <el-form-item label="是否新能源" prop="isNewEnergy"> |
| 384 | <el-select | 365 | <el-select |
| 385 | - v-model="form.vehicleBrandId" | 366 | + v-model="form.isNewEnergy" |
| 386 | :disabled="!hasRole" | 367 | :disabled="!hasRole" |
| 387 | style="width: 230px" | 368 | style="width: 230px" |
| 388 | > | 369 | > |
| 389 | <el-option | 370 | <el-option |
| 390 | - v-for="item in carBrandOption" | 371 | + v-for="item in NewEnergyOption" |
| 391 | :key="item.id" | 372 | :key="item.id" |
| 392 | :label="item.name" | 373 | :label="item.name" |
| 393 | :value="item.id" | 374 | :value="item.id" |
| @@ -395,54 +376,9 @@ | @@ -395,54 +376,9 @@ | ||
| 395 | </el-select> | 376 | </el-select> |
| 396 | </el-form-item> | 377 | </el-form-item> |
| 397 | </el-col> | 378 | </el-col> |
| 398 | - <el-col v-else :span="12"> | ||
| 399 | - <el-form-item label="中文品牌" prop="vehicleBrand"> | ||
| 400 | - <el-input | ||
| 401 | - v-model="form.customizeVehicleBrand" | ||
| 402 | - :disabled="!hasRole" | ||
| 403 | - placeholder="中文品牌" | ||
| 404 | - /> | ||
| 405 | - </el-form-item> | ||
| 406 | - </el-col> | ||
| 407 | </el-row> | 379 | </el-row> |
| 408 | <el-row> | 380 | <el-row> |
| 409 | <el-col :span="12"> | 381 | <el-col :span="12"> |
| 410 | - <el-form-item label="车辆型号" prop="customizeVehicleModel"> | ||
| 411 | - <el-input | ||
| 412 | - v-model="form.customizeVehicleModel" | ||
| 413 | - :disabled="!hasRole" | ||
| 414 | - placeholder="请输入车辆型号" | ||
| 415 | - /> | ||
| 416 | - </el-form-item> | ||
| 417 | - </el-col> | ||
| 418 | - <el-col :span="12"> | ||
| 419 | - <el-form-item label="准牵引准质量" prop="tractionMass"> | ||
| 420 | - <el-input | ||
| 421 | - v-model="form.tractionMass" | ||
| 422 | - :disabled="!hasRole" | ||
| 423 | - placeholder="请输入准牵引准质量" | ||
| 424 | - /> | ||
| 425 | - </el-form-item> | ||
| 426 | - </el-col> | ||
| 427 | - </el-row> | ||
| 428 | - <el-row> | ||
| 429 | - <el-col :span="12"> | ||
| 430 | - <el-form-item label="号牌种类" prop="customizeVehicleModel"> | ||
| 431 | - <el-select | ||
| 432 | - v-model="form.lincensePlateTypeId" | ||
| 433 | - :disabled="!hasRole" | ||
| 434 | - style="width: 230px" | ||
| 435 | - > | ||
| 436 | - <el-option | ||
| 437 | - v-for="item in carNumOption" | ||
| 438 | - :key="item.id" | ||
| 439 | - :label="item.name" | ||
| 440 | - :value="item.id" | ||
| 441 | - /> | ||
| 442 | - </el-select> | ||
| 443 | - </el-form-item> | ||
| 444 | - </el-col> | ||
| 445 | - <el-col :span="12"> | ||
| 446 | <el-form-item label="保险需求" prop="requirements"> | 382 | <el-form-item label="保险需求" prop="requirements"> |
| 447 | <el-select | 383 | <el-select |
| 448 | v-model="form.requirementsId" | 384 | v-model="form.requirementsId" |
| @@ -459,11 +395,55 @@ | @@ -459,11 +395,55 @@ | ||
| 459 | </el-form-item> | 395 | </el-form-item> |
| 460 | </el-col> | 396 | </el-col> |
| 461 | </el-row> | 397 | </el-row> |
| 398 | + <!-- 流转提示 --> | ||
| 399 | + <div class="transferTip"> | ||
| 400 | + <span>本次订单流转:{{ transferTip }}</span> | ||
| 401 | + <el-button :loading="loadingBtn" @click="getTransferTip" | ||
| 402 | + >刷新</el-button | ||
| 403 | + > | ||
| 404 | + </div> | ||
| 462 | </el-form> | 405 | </el-form> |
| 463 | <template #footer> | 406 | <template #footer> |
| 464 | - <div class="dialog-footer"> | ||
| 465 | - <el-button @click="open = false">取消</el-button> | ||
| 466 | - <el-button type="primary" @click="submitUpdate">提交修改</el-button> | 407 | + <div |
| 408 | + class="dialog-footer" | ||
| 409 | + style=" | ||
| 410 | + display: flex; | ||
| 411 | + justify-content: space-around; | ||
| 412 | + width: 65%; | ||
| 413 | + margin-left: auto; | ||
| 414 | + " | ||
| 415 | + > | ||
| 416 | + <el-button | ||
| 417 | + type="primary" | ||
| 418 | + v-hasRole="['associationemployee']" | ||
| 419 | + @click.stop="handleSuccess('0')" | ||
| 420 | + > | ||
| 421 | + 通过 | ||
| 422 | + </el-button> | ||
| 423 | + <el-button | ||
| 424 | + type="primary" | ||
| 425 | + v-hasRole="['associationemployee']" | ||
| 426 | + @click="submitUpdate" | ||
| 427 | + >保存</el-button | ||
| 428 | + > | ||
| 429 | + <el-button | ||
| 430 | + type="primary" | ||
| 431 | + v-hasRole="['associationemployee']" | ||
| 432 | + @click="handleVoid('2')" | ||
| 433 | + >作废</el-button | ||
| 434 | + > | ||
| 435 | + <el-button | ||
| 436 | + type="primary" | ||
| 437 | + v-hasRole="['associationemployee']" | ||
| 438 | + @click="handleFallback('1')" | ||
| 439 | + >退回</el-button | ||
| 440 | + > | ||
| 441 | + <el-button | ||
| 442 | + type="primary" | ||
| 443 | + v-hasRole="['associationemployee']" | ||
| 444 | + @click.stop="handleAuthCompany('0')" | ||
| 445 | + >分配</el-button | ||
| 446 | + > | ||
| 467 | </div> | 447 | </div> |
| 468 | </template> | 448 | </template> |
| 469 | </el-dialog> | 449 | </el-dialog> |
| @@ -478,18 +458,23 @@ import { | @@ -478,18 +458,23 @@ import { | ||
| 478 | getUserList, | 458 | getUserList, |
| 479 | updateCarInfo, | 459 | updateCarInfo, |
| 480 | getCarDetail, | 460 | getCarDetail, |
| 461 | + getCompanyTip, | ||
| 462 | + queryDefeatContent, | ||
| 481 | } from "@/api/policy/index"; | 463 | } from "@/api/policy/index"; |
| 464 | +import { checkRole } from "@/utils/permission"; // 权限判断函数 | ||
| 482 | import { queryCarType } from "@/api/configurationCenter/carType.js"; | 465 | import { queryCarType } from "@/api/configurationCenter/carType.js"; |
| 483 | import { queryCarNature } from "@/api/configurationCenter/carNature.js"; | 466 | import { queryCarNature } from "@/api/configurationCenter/carNature.js"; |
| 484 | -import { queryCarBrand } from "@/api/configurationCenter/carBrand.js"; | ||
| 485 | -import { queryCarNum } from "@/api/configurationCenter/carNum.js"; | ||
| 486 | import { queryNeed } from "@/api/configurationCenter/need.js"; | 467 | import { queryNeed } from "@/api/configurationCenter/need.js"; |
| 487 | import { listDept } from "@/api/system/dept"; | 468 | import { listDept } from "@/api/system/dept"; |
| 488 | -import { ref } from "vue"; | ||
| 489 | const { proxy } = getCurrentInstance(); | 469 | const { proxy } = getCurrentInstance(); |
| 490 | const loading = ref(false); | 470 | const loading = ref(false); |
| 471 | +const activeTitle = ref(""); | ||
| 472 | +const loadingBtn = ref(false); | ||
| 473 | +const showIssue = ref(false); | ||
| 491 | const total = ref(0); | 474 | const total = ref(0); |
| 492 | -const isCustom = ref(false); | 475 | +const typeId = ref(0); // 判断类型 0 问题件 1 退回 2 作废 |
| 476 | +const transferTip = ref(""); //流转下一家名称 | ||
| 477 | +const transferDeptId = ref(""); // 流转的部门公司ID | ||
| 493 | const open = ref(false); | 478 | const open = ref(false); |
| 494 | const timer = ref(null); | 479 | const timer = ref(null); |
| 495 | const timerReason = ref(null); | 480 | const timerReason = ref(null); |
| @@ -497,9 +482,13 @@ const form = ref({}); | @@ -497,9 +482,13 @@ const form = ref({}); | ||
| 497 | const showFeedback = ref(false); | 482 | const showFeedback = ref(false); |
| 498 | const transferShow = ref(false); | 483 | const transferShow = ref(false); |
| 499 | const transferForm = ref({}); | 484 | const transferForm = ref({}); |
| 485 | +const taskId = ref(""); | ||
| 486 | +const IssueForm = ref({ | ||
| 487 | + deprecatedReason: "", | ||
| 488 | +}); | ||
| 500 | const FeedbackForm = ref({ | 489 | const FeedbackForm = ref({ |
| 501 | - shoppolicynumber: "", | ||
| 502 | - policynumber: "", | 490 | + stronginsurancepolicynumber: "", |
| 491 | + commercialinsurancepolicynumber: "", | ||
| 503 | message: "", | 492 | message: "", |
| 504 | }); | 493 | }); |
| 505 | const getParams = reactive({ | 494 | const getParams = reactive({ |
| @@ -510,7 +499,10 @@ const companyShow = ref(false); | @@ -510,7 +499,10 @@ const companyShow = ref(false); | ||
| 510 | const deptOptions = ref([]); | 499 | const deptOptions = ref([]); |
| 511 | const transferOptions = ref([]); | 500 | const transferOptions = ref([]); |
| 512 | const deprecatedShow = ref(false); | 501 | const deprecatedShow = ref(false); |
| 513 | -const deprecatedForm = ref({}); | 502 | +const deprecatedForm = ref({ |
| 503 | + deprecatedReason: "", | ||
| 504 | + associationapprove: "", | ||
| 505 | +}); | ||
| 514 | const companyForm = ref({}); | 506 | const companyForm = ref({}); |
| 515 | const queryParams = reactive({ | 507 | const queryParams = reactive({ |
| 516 | pageNum: 1, | 508 | pageNum: 1, |
| @@ -527,17 +519,18 @@ const hasRole = computed(() => { | @@ -527,17 +519,18 @@ const hasRole = computed(() => { | ||
| 527 | return proxy.$auth.hasRole("associationemployee"); | 519 | return proxy.$auth.hasRole("associationemployee"); |
| 528 | }); | 520 | }); |
| 529 | 521 | ||
| 530 | -const hasCompanyadmin = computed(() => { | ||
| 531 | - return proxy.$auth.hasRole("companyadmin"); | ||
| 532 | -}); | 522 | +// 新能源 |
| 523 | +const NewEnergyOption = ref([ | ||
| 524 | + { | ||
| 525 | + id: "0", | ||
| 526 | + name: "否", | ||
| 527 | + }, | ||
| 528 | + { | ||
| 529 | + id: "1", | ||
| 530 | + name: "是", | ||
| 531 | + }, | ||
| 532 | +]); | ||
| 533 | 533 | ||
| 534 | -// 号牌种类 | ||
| 535 | -const carNumOption = ref([]); | ||
| 536 | -const getCarNumOption = async () => { | ||
| 537 | - const { data } = await queryCarNum(getParams); | ||
| 538 | - carNumOption.value = data.records; | ||
| 539 | -}; | ||
| 540 | -getCarNumOption(); | ||
| 541 | // 车辆类型 | 534 | // 车辆类型 |
| 542 | const carTypeOption = ref([]); | 535 | const carTypeOption = ref([]); |
| 543 | const getCarTypeOption = async () => { | 536 | const getCarTypeOption = async () => { |
| @@ -552,13 +545,6 @@ const getcarNatureOption = async () => { | @@ -552,13 +545,6 @@ const getcarNatureOption = async () => { | ||
| 552 | carNatureOption.value = data.records; | 545 | carNatureOption.value = data.records; |
| 553 | }; | 546 | }; |
| 554 | getcarNatureOption(); | 547 | getcarNatureOption(); |
| 555 | -// 中文品牌 | ||
| 556 | -const carBrandOption = ref([]); | ||
| 557 | -const getCarBrandOption = async () => { | ||
| 558 | - const { data } = await queryCarBrand(getParams); | ||
| 559 | - carBrandOption.value = data.records; | ||
| 560 | -}; | ||
| 561 | -getCarBrandOption(); | ||
| 562 | 548 | ||
| 563 | // 保险需求 | 549 | // 保险需求 |
| 564 | const needOption = ref([]); | 550 | const needOption = ref([]); |
| @@ -568,6 +554,11 @@ const getNeedOption = async () => { | @@ -568,6 +554,11 @@ const getNeedOption = async () => { | ||
| 568 | }; | 554 | }; |
| 569 | getNeedOption(); | 555 | getNeedOption(); |
| 570 | 556 | ||
| 557 | +// 赋值taskId | ||
| 558 | +const handleTask = (row) => { | ||
| 559 | + taskId.value = row.taskId; | ||
| 560 | +}; | ||
| 561 | + | ||
| 571 | const getList = async () => { | 562 | const getList = async () => { |
| 572 | loading.value = true; | 563 | loading.value = true; |
| 573 | const { data } = await queryMyList(queryParams); | 564 | const { data } = await queryMyList(queryParams); |
| @@ -596,76 +587,100 @@ const handleContinue = (row) => { | @@ -596,76 +587,100 @@ const handleContinue = (row) => { | ||
| 596 | showFeedback.value = true; | 587 | showFeedback.value = true; |
| 597 | } | 588 | } |
| 598 | }; | 589 | }; |
| 599 | -// 疑难件 | 590 | +// 问题件 |
| 600 | const handleTroubleshooting = (taskId) => { | 591 | const handleTroubleshooting = (taskId) => { |
| 601 | - const data = { | ||
| 602 | - policystatus: "1", | ||
| 603 | - }; | ||
| 604 | - disposeUser(data, taskId).then((res) => { | ||
| 605 | - getList(); | ||
| 606 | - proxy.$modal.msgSuccess("处理成功"); | ||
| 607 | - }); | 592 | + deprecatedForm.value.taskId = taskId; |
| 593 | + activeTitle.value = "问题件退回至协会"; | ||
| 594 | + typeId.value = 0; | ||
| 595 | + deprecatedShow.value = true; | ||
| 608 | }; | 596 | }; |
| 609 | // 通过保单 | 597 | // 通过保单 |
| 610 | -const handleSuccess = (associationapprove, taskId) => { | 598 | +const handleSuccess = (associationapprove) => { |
| 611 | proxy.$modal | 599 | proxy.$modal |
| 612 | .confirm("是否通过该保单") | 600 | .confirm("是否通过该保单") |
| 613 | .then(function () {}) | 601 | .then(function () {}) |
| 614 | - .then(() => { | ||
| 615 | - disposeUser({ associationapprove }, taskId).then((res) => { | ||
| 616 | - proxy.$modal.msgSuccess("保单已通过"); | ||
| 617 | - getList(); | ||
| 618 | - }); | 602 | + .then(async () => { |
| 603 | + await updateCarInfo(form.value); | ||
| 604 | + await disposeUser( | ||
| 605 | + { | ||
| 606 | + associationapprove, | ||
| 607 | + associationapprovetype: "0", | ||
| 608 | + deptid: transferDeptId.value, | ||
| 609 | + }, | ||
| 610 | + taskId.value | ||
| 611 | + ); | ||
| 612 | + proxy.$modal.msgSuccess("保单已通过"); | ||
| 613 | + open.value = false; | ||
| 614 | + getList(); | ||
| 619 | }) | 615 | }) |
| 620 | .catch(() => { | 616 | .catch(() => { |
| 621 | proxy.$modal.msg("取消通过"); | 617 | proxy.$modal.msg("取消通过"); |
| 622 | }); | 618 | }); |
| 623 | }; | 619 | }; |
| 624 | // 退回保单 | 620 | // 退回保单 |
| 625 | -const handleFallback = (associationapprove, taskId) => { | ||
| 626 | - proxy.$modal | ||
| 627 | - .confirm("是否退回该保单") | ||
| 628 | - .then(function () {}) | ||
| 629 | - .then(() => { | ||
| 630 | - disposeUser({ associationapprove }, taskId).then((res) => { | ||
| 631 | - proxy.$modal.msgSuccess("保单已退回"); | ||
| 632 | - getList(); | ||
| 633 | - }); | ||
| 634 | - }) | ||
| 635 | - .catch(() => { | ||
| 636 | - proxy.$modal.msg("已取消"); | ||
| 637 | - }); | 621 | +const handleFallback = (associationapprove) => { |
| 622 | + clearTimeout(timerReason.value); | ||
| 623 | + deprecatedForm.value = { | ||
| 624 | + associationapprove, | ||
| 625 | + taskId: taskId.value, | ||
| 626 | + }; | ||
| 627 | + deprecatedForm.value.deprecatedReason = ""; | ||
| 628 | + typeId.value = 1; | ||
| 629 | + activeTitle.value = "退回后用户需修改后重新提交"; | ||
| 630 | + deprecatedShow.value = true; | ||
| 638 | }; | 631 | }; |
| 639 | // 作废保单 | 632 | // 作废保单 |
| 640 | -const handleVoid = (associationapprove, taskId) => { | 633 | +const handleVoid = (associationapprove) => { |
| 634 | + clearTimeout(timerReason.value); | ||
| 641 | deprecatedForm.value = { | 635 | deprecatedForm.value = { |
| 642 | associationapprove, | 636 | associationapprove, |
| 643 | - taskId, | 637 | + taskId: taskId.value, |
| 644 | }; | 638 | }; |
| 639 | + deprecatedForm.value.deprecatedReason = ""; | ||
| 640 | + typeId.value = 2; | ||
| 641 | + activeTitle.value = | ||
| 642 | + "温馨提示:该保单作废后车牌号、车架号在本自然年度无法重新提交"; | ||
| 645 | deprecatedShow.value = true; | 643 | deprecatedShow.value = true; |
| 646 | }; | 644 | }; |
| 645 | +// 提交方法 | ||
| 647 | 646 | ||
| 648 | -// 提交作废表单 | 647 | +// 查询问题件原因 |
| 648 | +const lookReason = async (row) => { | ||
| 649 | + const { data } = await queryDefeatContent({ | ||
| 650 | + processInstanceId: row.processInstanceId, | ||
| 651 | + type: 0, | ||
| 652 | + }); | ||
| 653 | + IssueForm.value.deprecatedReason = data.message; | ||
| 654 | + showIssue.value = true; | ||
| 655 | +}; | ||
| 656 | +// 提交作废,退回,问题件表单 | ||
| 649 | const sunmitDeprecated = () => { | 657 | const sunmitDeprecated = () => { |
| 650 | - const data = { | ||
| 651 | - associationapprove: deprecatedForm.value.associationapprove, | ||
| 652 | - comment: deprecatedForm.value.deprecatedReason, | ||
| 653 | - }; | 658 | + let data = {}; |
| 659 | + if (typeId.value === 0) { | ||
| 660 | + data = { | ||
| 661 | + policystatus: "1", | ||
| 662 | + comment: deprecatedForm.value.deprecatedReason, | ||
| 663 | + }; | ||
| 664 | + } else { | ||
| 665 | + data = { | ||
| 666 | + associationapprove: deprecatedForm.value.associationapprove, | ||
| 667 | + comment: deprecatedForm.value.deprecatedReason, | ||
| 668 | + }; | ||
| 669 | + } | ||
| 654 | const taskId = deprecatedForm.value.taskId; | 670 | const taskId = deprecatedForm.value.taskId; |
| 655 | disposeUser(data, taskId).then((res) => { | 671 | disposeUser(data, taskId).then((res) => { |
| 656 | getList(); | 672 | getList(); |
| 657 | deprecatedShow.value = false; | 673 | deprecatedShow.value = false; |
| 658 | - proxy.$modal.msgSuccess("保单已作废"); | 674 | + proxy.$modal.msgSuccess("操作成功"); |
| 659 | }); | 675 | }); |
| 660 | }; | 676 | }; |
| 661 | // 分配承保公司 | 677 | // 分配承保公司 |
| 662 | -const handleAuthCompany = (associationapprove, taskId) => { | 678 | +const handleAuthCompany = (associationapprove) => { |
| 663 | companyForm.value = { | 679 | companyForm.value = { |
| 664 | associationapprove, | 680 | associationapprove, |
| 665 | - taskId, | 681 | + taskId: taskId.value, |
| 666 | }; | 682 | }; |
| 667 | companyShow.value = true; | 683 | companyShow.value = true; |
| 668 | - getDeptList(); | ||
| 669 | }; | 684 | }; |
| 670 | 685 | ||
| 671 | // 获取人员列表 | 686 | // 获取人员列表 |
| @@ -683,22 +698,19 @@ const handleSharing = (id) => { | @@ -683,22 +698,19 @@ const handleSharing = (id) => { | ||
| 683 | const getDeptList = () => { | 698 | const getDeptList = () => { |
| 684 | loading.value = true; | 699 | loading.value = true; |
| 685 | listDept(companyQueryParams).then((response) => { | 700 | listDept(companyQueryParams).then((response) => { |
| 686 | - deptOptions.value = response.data.filter((item) => item.parentId === 100); | 701 | + let newArr = []; |
| 702 | + newArr = response.data.filter((item) => item.parentId === 100); | ||
| 703 | + deptOptions.value = newArr.map((child) => { | ||
| 704 | + return { | ||
| 705 | + deptId: child.deptId.toString(), | ||
| 706 | + deptName: child.deptName, | ||
| 707 | + }; | ||
| 708 | + }); | ||
| 687 | loading.value = false; | 709 | loading.value = false; |
| 688 | }); | 710 | }); |
| 689 | }; | 711 | }; |
| 690 | - | ||
| 691 | /** 重置操作表单 */ | 712 | /** 重置操作表单 */ |
| 692 | function reset() { | 713 | function reset() { |
| 693 | - form.value = { | ||
| 694 | - policyId: undefined, | ||
| 695 | - createTime: undefined, | ||
| 696 | - carNum: undefined, | ||
| 697 | - frameNum: undefined, | ||
| 698 | - name: undefined, | ||
| 699 | - phone: undefined, | ||
| 700 | - company: undefined, | ||
| 701 | - }; | ||
| 702 | proxy.resetForm("policyRef"); | 714 | proxy.resetForm("policyRef"); |
| 703 | } | 715 | } |
| 704 | 716 | ||
| @@ -706,14 +718,15 @@ function reset() { | @@ -706,14 +718,15 @@ function reset() { | ||
| 706 | const handleUpdate = async (row) => { | 718 | const handleUpdate = async (row) => { |
| 707 | reset(); | 719 | reset(); |
| 708 | const { data } = await getCarDetail(row.businessKey); | 720 | const { data } = await getCarDetail(row.businessKey); |
| 721 | + getTransferTip(); | ||
| 709 | form.value = data; | 722 | form.value = data; |
| 710 | - isCustom.value = data.isCustomizeBrandAndModel == "0"; | ||
| 711 | open.value = true; | 723 | open.value = true; |
| 712 | }; | 724 | }; |
| 713 | /** 提交通过分配承保公司 */ | 725 | /** 提交通过分配承保公司 */ |
| 714 | function submitForm() { | 726 | function submitForm() { |
| 715 | const data = { | 727 | const data = { |
| 716 | associationapprove: companyForm.value.associationapprove, | 728 | associationapprove: companyForm.value.associationapprove, |
| 729 | + associationapprovetype: "1", | ||
| 717 | deptid: companyForm.value.deptId.toString(), | 730 | deptid: companyForm.value.deptId.toString(), |
| 718 | }; | 731 | }; |
| 719 | const taskId = companyForm.value.taskId; | 732 | const taskId = companyForm.value.taskId; |
| @@ -742,7 +755,9 @@ const submit = () => { | @@ -742,7 +755,9 @@ const submit = () => { | ||
| 742 | const data = { | 755 | const data = { |
| 743 | policystatus: "2", | 756 | policystatus: "2", |
| 744 | message: FeedbackForm.value.comment, | 757 | message: FeedbackForm.value.comment, |
| 745 | - policynumber: FeedbackForm.value.policynumber, | 758 | + commercialinsurancepolicynumber: |
| 759 | + FeedbackForm.value.commercialinsurancepolicynumber, | ||
| 760 | + stronginsurancepolicynumber: FeedbackForm.value.stronginsurancepolicynumber, | ||
| 746 | }; | 761 | }; |
| 747 | disposeUser(data, FeedbackForm.value.taskId).then((res) => { | 762 | disposeUser(data, FeedbackForm.value.taskId).then((res) => { |
| 748 | getList(); | 763 | getList(); |
| @@ -758,11 +773,20 @@ const getMsg = (val) => { | @@ -758,11 +773,20 @@ const getMsg = (val) => { | ||
| 758 | }, 1000); | 773 | }, 1000); |
| 759 | }; | 774 | }; |
| 760 | 775 | ||
| 761 | -// 获取作废原因 | 776 | +// 获取流转下一家分配公司 |
| 777 | +const getTransferTip = async () => { | ||
| 778 | + loadingBtn.value = true; | ||
| 779 | + const { data } = await getCompanyTip(); | ||
| 780 | + transferTip.value = data.deptName; | ||
| 781 | + transferDeptId.value = data.deptId; | ||
| 782 | + loadingBtn.value = false; | ||
| 783 | +}; | ||
| 784 | + | ||
| 785 | +// 填写作废原因 | ||
| 762 | const getReason = (val) => { | 786 | const getReason = (val) => { |
| 763 | clearTimeout(timerReason.value); | 787 | clearTimeout(timerReason.value); |
| 764 | timerReason.value = setTimeout(() => { | 788 | timerReason.value = setTimeout(() => { |
| 765 | - deprecatedForm.value.deprecatedReaso = val; | 789 | + deprecatedForm.value.deprecatedReason = val; |
| 766 | }, 1000); | 790 | }, 1000); |
| 767 | }; | 791 | }; |
| 768 | // 提交修改 | 792 | // 提交修改 |
| @@ -775,6 +799,9 @@ const submitUpdate = () => { | @@ -775,6 +799,9 @@ const submitUpdate = () => { | ||
| 775 | }; | 799 | }; |
| 776 | 800 | ||
| 777 | getList(); | 801 | getList(); |
| 802 | +if (checkRole(["associationemployee"])) { | ||
| 803 | + getDeptList(); | ||
| 804 | +} | ||
| 778 | </script> | 805 | </script> |
| 779 | 806 | ||
| 780 | <style lang="scss" scoped> | 807 | <style lang="scss" scoped> |
| @@ -788,4 +815,16 @@ getList(); | @@ -788,4 +815,16 @@ getList(); | ||
| 788 | gap: 30px; | 815 | gap: 30px; |
| 789 | margin-bottom: 20px; | 816 | margin-bottom: 20px; |
| 790 | } | 817 | } |
| 818 | +.transferTip { | ||
| 819 | + display: flex; | ||
| 820 | + align-items: center; | ||
| 821 | + gap: 20px; | ||
| 822 | + font-size: 14px; | ||
| 823 | + color: #666; | ||
| 824 | +} | ||
| 825 | +.company_content { | ||
| 826 | + width: 100%; | ||
| 827 | + height: 200px; | ||
| 828 | + overflow-y: scroll; | ||
| 829 | +} | ||
| 791 | </style> | 830 | </style> |
| @@ -78,12 +78,7 @@ | @@ -78,12 +78,7 @@ | ||
| 78 | </el-form> | 78 | </el-form> |
| 79 | 79 | ||
| 80 | <!-- 表格数据 --> | 80 | <!-- 表格数据 --> |
| 81 | - <el-table | ||
| 82 | - v-loading="loading" | ||
| 83 | - :data="policyList" | ||
| 84 | - @selection-change="handleSelectionChange" | ||
| 85 | - @row-click="handleUpdate" | ||
| 86 | - > | 81 | + <el-table v-loading="loading" :data="policyList" @row-click="handleUpdate"> |
| 87 | <el-table-column label="序号" type="index" width="55" /> | 82 | <el-table-column label="序号" type="index" width="55" /> |
| 88 | <el-table-column label="登记时间" prop="createTime" width="160" /> | 83 | <el-table-column label="登记时间" prop="createTime" width="160" /> |
| 89 | <el-table-column label="车牌号" prop="licensePlateNumber" width="150" /> | 84 | <el-table-column label="车牌号" prop="licensePlateNumber" width="150" /> |
| @@ -161,22 +156,6 @@ | @@ -161,22 +156,6 @@ | ||
| 161 | </el-row> | 156 | </el-row> |
| 162 | <el-row> | 157 | <el-row> |
| 163 | <el-col :span="12"> | 158 | <el-col :span="12"> |
| 164 | - <el-form-item label="发动机号" prop="engineNumber"> | ||
| 165 | - <el-input v-model="form.engineNumber" placeholder="无" disabled /> | ||
| 166 | - </el-form-item> | ||
| 167 | - </el-col> | ||
| 168 | - <el-col :span="12"> | ||
| 169 | - <el-form-item label="排放毫升量" prop="emissions"> | ||
| 170 | - <el-input | ||
| 171 | - v-model="form.emissions" | ||
| 172 | - disabled | ||
| 173 | - placeholder="请输入车架号" | ||
| 174 | - /> | ||
| 175 | - </el-form-item> | ||
| 176 | - </el-col> | ||
| 177 | - </el-row> | ||
| 178 | - <el-row> | ||
| 179 | - <el-col :span="12"> | ||
| 180 | <el-form-item label="车主姓名" prop="name"> | 159 | <el-form-item label="车主姓名" prop="name"> |
| 181 | <el-input | 160 | <el-input |
| 182 | v-model="form.name" | 161 | v-model="form.name" |
| @@ -197,12 +176,8 @@ | @@ -197,12 +176,8 @@ | ||
| 197 | </el-row> | 176 | </el-row> |
| 198 | <el-row> | 177 | <el-row> |
| 199 | <el-col :span="12"> | 178 | <el-col :span="12"> |
| 200 | - <el-form-item label="登记时间" prop="createTime"> | ||
| 201 | - <el-input | ||
| 202 | - v-model="form.createTime" | ||
| 203 | - disabled | ||
| 204 | - placeholder="请输入登记时间" | ||
| 205 | - /> | 179 | + <el-form-item label="发动机号" prop="engineNumber"> |
| 180 | + <el-input v-model="form.engineNumber" placeholder="无" disabled /> | ||
| 206 | </el-form-item> | 181 | </el-form-item> |
| 207 | </el-col> | 182 | </el-col> |
| 208 | <el-col :span="12"> | 183 | <el-col :span="12"> |
| @@ -217,22 +192,6 @@ | @@ -217,22 +192,6 @@ | ||
| 217 | </el-row> | 192 | </el-row> |
| 218 | <el-row> | 193 | <el-row> |
| 219 | <el-col :span="12"> | 194 | <el-col :span="12"> |
| 220 | - <el-form-item label="核定载质量" prop="passengerCapacity"> | ||
| 221 | - <el-input | ||
| 222 | - v-model="form.passengerCapacity" | ||
| 223 | - disabled | ||
| 224 | - placeholder="无" | ||
| 225 | - /> | ||
| 226 | - </el-form-item> | ||
| 227 | - </el-col> | ||
| 228 | - <el-col :span="12"> | ||
| 229 | - <el-form-item label="核定载人数" prop="passengersNumber"> | ||
| 230 | - <el-input v-model="form.passengersNumber" disabled /> | ||
| 231 | - </el-form-item> | ||
| 232 | - </el-col> | ||
| 233 | - </el-row> | ||
| 234 | - <el-row> | ||
| 235 | - <el-col :span="12"> | ||
| 236 | <el-form-item label="分配机制" prop="distributionMechanism"> | 195 | <el-form-item label="分配机制" prop="distributionMechanism"> |
| 237 | <el-input | 196 | <el-input |
| 238 | v-model="form.distributionMechanism" | 197 | v-model="form.distributionMechanism" |
| @@ -249,38 +208,11 @@ | @@ -249,38 +208,11 @@ | ||
| 249 | </el-row> | 208 | </el-row> |
| 250 | <el-row> | 209 | <el-row> |
| 251 | <el-col :span="12"> | 210 | <el-col :span="12"> |
| 252 | - <el-form-item label="车辆品牌" prop="vehicleBrand"> | ||
| 253 | - <el-input | ||
| 254 | - v-model="form.vehicleBrand" | ||
| 255 | - disabled | ||
| 256 | - placeholder="车辆品牌" | ||
| 257 | - /> | ||
| 258 | - </el-form-item> | ||
| 259 | - </el-col> | ||
| 260 | - <el-col :span="12"> | ||
| 261 | - <el-form-item label="车辆型号" prop="vehicleModel"> | ||
| 262 | - <el-input v-model="form.vehicleModel" disabled placeholder="无" /> | ||
| 263 | - </el-form-item> | ||
| 264 | - </el-col> | ||
| 265 | - </el-row> | ||
| 266 | - <el-row> | ||
| 267 | - <el-col :span="12"> | ||
| 268 | <el-form-item label="保险需求" prop="requirements"> | 211 | <el-form-item label="保险需求" prop="requirements"> |
| 269 | <el-input v-model="form.requirements" disabled placeholder="无" /> | 212 | <el-input v-model="form.requirements" disabled placeholder="无" /> |
| 270 | </el-form-item> | 213 | </el-form-item> |
| 271 | </el-col> | 214 | </el-col> |
| 272 | <el-col :span="12"> | 215 | <el-col :span="12"> |
| 273 | - <el-form-item label="号牌种类" prop="lincensePlateType"> | ||
| 274 | - <el-input | ||
| 275 | - v-model="form.lincensePlateType" | ||
| 276 | - disabled | ||
| 277 | - placeholder="无" | ||
| 278 | - /> | ||
| 279 | - </el-form-item> | ||
| 280 | - </el-col> | ||
| 281 | - </el-row> | ||
| 282 | - <el-row> | ||
| 283 | - <el-col :span="12"> | ||
| 284 | <el-form-item label="使用性质" prop="vehicleNature"> | 216 | <el-form-item label="使用性质" prop="vehicleNature"> |
| 285 | <el-input | 217 | <el-input |
| 286 | v-model="form.vehicleNature" | 218 | v-model="form.vehicleNature" |
| @@ -289,11 +221,6 @@ | @@ -289,11 +221,6 @@ | ||
| 289 | /> | 221 | /> |
| 290 | </el-form-item> | 222 | </el-form-item> |
| 291 | </el-col> | 223 | </el-col> |
| 292 | - <el-col :span="12"> | ||
| 293 | - <el-form-item label="车辆类型" prop="vehicleType"> | ||
| 294 | - <el-input v-model="form.vehicleType" disabled placeholder="无" /> | ||
| 295 | - </el-form-item> | ||
| 296 | - </el-col> | ||
| 297 | </el-row> | 224 | </el-row> |
| 298 | </el-form> | 225 | </el-form> |
| 299 | </el-dialog> | 226 | </el-dialog> |
| @@ -342,14 +269,6 @@ const associationapproveOptions = [ | @@ -342,14 +269,6 @@ const associationapproveOptions = [ | ||
| 342 | 269 | ||
| 343 | const policyList = ref([]); | 270 | const policyList = ref([]); |
| 344 | 271 | ||
| 345 | -/** 多选框选中数据 */ | ||
| 346 | -function handleSelectionChange(selection) { | ||
| 347 | - // ids.value = selection.map(item => item.roleId); | ||
| 348 | - // single.value = selection.length != 1; | ||
| 349 | - // multiple.value = !selection.length; | ||
| 350 | - console.log(selection); | ||
| 351 | -} | ||
| 352 | - | ||
| 353 | const getList = async () => { | 272 | const getList = async () => { |
| 354 | loading.value = true; | 273 | loading.value = true; |
| 355 | const res = await queryProcessedList(queryParams); | 274 | const res = await queryProcessedList(queryParams); |
| @@ -116,6 +116,19 @@ | @@ -116,6 +116,19 @@ | ||
| 116 | </el-form-item> | 116 | </el-form-item> |
| 117 | </el-form> | 117 | </el-form> |
| 118 | 118 | ||
| 119 | + <el-row :gutter="10" class="mb8"> | ||
| 120 | + <el-col :span="1.5"> | ||
| 121 | + <el-button | ||
| 122 | + type="warning" | ||
| 123 | + plain | ||
| 124 | + icon="Download" | ||
| 125 | + @click="handleExport" | ||
| 126 | + v-hasPermi="['system:registrationmonitor:export']" | ||
| 127 | + >导出</el-button | ||
| 128 | + > | ||
| 129 | + </el-col> | ||
| 130 | + </el-row> | ||
| 131 | + | ||
| 119 | <!-- 表格数据 --> | 132 | <!-- 表格数据 --> |
| 120 | <el-table v-loading="loading" :data="policyList"> | 133 | <el-table v-loading="loading" :data="policyList"> |
| 121 | <el-table-column label="序号" width="55" type="index" /> | 134 | <el-table-column label="序号" width="55" type="index" /> |
| @@ -138,6 +151,18 @@ | @@ -138,6 +151,18 @@ | ||
| 138 | align="center" | 151 | align="center" |
| 139 | /> | 152 | /> |
| 140 | <el-table-column | 153 | <el-table-column |
| 154 | + label="发动机号" | ||
| 155 | + width="180" | ||
| 156 | + prop="engineNumber" | ||
| 157 | + align="center" | ||
| 158 | + :show-overflow-tooltip="true" | ||
| 159 | + /> | ||
| 160 | + <el-table-column label="是否新能源" width="150" align="center"> | ||
| 161 | + <template #default="{ row }"> | ||
| 162 | + {{ row.isNewEnergy === "1" ? "是" : "否" }} | ||
| 163 | + </template> | ||
| 164 | + </el-table-column> | ||
| 165 | + <el-table-column | ||
| 141 | label="车主姓名" | 166 | label="车主姓名" |
| 142 | prop="name" | 167 | prop="name" |
| 143 | width="100" | 168 | width="100" |
| @@ -156,18 +181,29 @@ | @@ -156,18 +181,29 @@ | ||
| 156 | prop="distributionMechanism" | 181 | prop="distributionMechanism" |
| 157 | /> | 182 | /> |
| 158 | <el-table-column | 183 | <el-table-column |
| 159 | - label="承保公司" | ||
| 160 | - prop="companyName" | ||
| 161 | - width="150" | ||
| 162 | align="center" | 184 | align="center" |
| 163 | - /> | ||
| 164 | - <el-table-column label="办理人" width="100" align="center"> | 185 | + label="操作人" |
| 186 | + width="120" | ||
| 187 | + prop="distributionMechanism" | ||
| 188 | + > | ||
| 165 | <template #default="{ row }"> | 189 | <template #default="{ row }"> |
| 166 | <span>{{ | 190 | <span>{{ |
| 167 | - row.associationEmployeeUserName ?? row.companyEmployeeUserName | 191 | + row.companyEmployeeUserName || row.associationEmployeeUserName |
| 168 | }}</span> | 192 | }}</span> |
| 169 | </template> | 193 | </template> |
| 170 | </el-table-column> | 194 | </el-table-column> |
| 195 | + <el-table-column | ||
| 196 | + align="center" | ||
| 197 | + label="操作时间" | ||
| 198 | + width="160" | ||
| 199 | + prop="distributionTime" | ||
| 200 | + /> | ||
| 201 | + <el-table-column | ||
| 202 | + label="承保公司" | ||
| 203 | + prop="companyName" | ||
| 204 | + width="150" | ||
| 205 | + align="center" | ||
| 206 | + /> | ||
| 171 | <el-table-column label="保单进度" width="100" prop="orderProgress" /> | 207 | <el-table-column label="保单进度" width="100" prop="orderProgress" /> |
| 172 | <el-table-column | 208 | <el-table-column |
| 173 | label="保单状态" | 209 | label="保单状态" |
| @@ -175,6 +211,16 @@ | @@ -175,6 +211,16 @@ | ||
| 175 | prop="policyStatus" | 211 | prop="policyStatus" |
| 176 | :show-overflow-tooltip="true" | 212 | :show-overflow-tooltip="true" |
| 177 | /> | 213 | /> |
| 214 | + <el-table-column label="时效" width="100"> | ||
| 215 | + <template #default="{ row }"> | ||
| 216 | + <span>{{ | ||
| 217 | + row.policyStatus === "已作废" || | ||
| 218 | + row.policyStatus === "退回后用户取消登记" | ||
| 219 | + ? "无" | ||
| 220 | + : timeDifference(row) | ||
| 221 | + }}</span> | ||
| 222 | + </template> | ||
| 223 | + </el-table-column> | ||
| 178 | <el-table-column | 224 | <el-table-column |
| 179 | label="查询回馈" | 225 | label="查询回馈" |
| 180 | fixed="right" | 226 | fixed="right" |
| @@ -247,22 +293,6 @@ | @@ -247,22 +293,6 @@ | ||
| 247 | </el-row> | 293 | </el-row> |
| 248 | <el-row> | 294 | <el-row> |
| 249 | <el-col :span="12"> | 295 | <el-col :span="12"> |
| 250 | - <el-form-item label="车辆类型" prop="vehicleType"> | ||
| 251 | - <el-select | ||
| 252 | - v-model="form.vehicleTypeId" | ||
| 253 | - disabled | ||
| 254 | - style="width: 230px" | ||
| 255 | - > | ||
| 256 | - <el-option | ||
| 257 | - v-for="item in carTypeOption" | ||
| 258 | - :key="item.id" | ||
| 259 | - :label="item.name" | ||
| 260 | - :value="item.id" | ||
| 261 | - /> | ||
| 262 | - </el-select> | ||
| 263 | - </el-form-item> | ||
| 264 | - </el-col> | ||
| 265 | - <el-col :span="12"> | ||
| 266 | <el-form-item label="车辆使用性质" prop="vehicleNature"> | 296 | <el-form-item label="车辆使用性质" prop="vehicleNature"> |
| 267 | <el-select | 297 | <el-select |
| 268 | v-model="form.vehicleNatureId" | 298 | v-model="form.vehicleNatureId" |
| @@ -278,100 +308,6 @@ | @@ -278,100 +308,6 @@ | ||
| 278 | </el-select> | 308 | </el-select> |
| 279 | </el-form-item> | 309 | </el-form-item> |
| 280 | </el-col> | 310 | </el-col> |
| 281 | - </el-row> | ||
| 282 | - <el-row> | ||
| 283 | - <el-col :span="12"> | ||
| 284 | - <el-form-item label="核定载客数" prop="passengersNumber"> | ||
| 285 | - <el-input | ||
| 286 | - v-model="form.passengersNumber" | ||
| 287 | - disabled | ||
| 288 | - placeholder="请输入核定载客数" | ||
| 289 | - /> | ||
| 290 | - </el-form-item> | ||
| 291 | - </el-col> | ||
| 292 | - <el-col :span="12"> | ||
| 293 | - <el-form-item label="核定载质量" prop="passengerCapacity"> | ||
| 294 | - <el-input | ||
| 295 | - v-model="form.passengerCapacity" | ||
| 296 | - disabled | ||
| 297 | - placeholder="请输入核定载质量" | ||
| 298 | - /> | ||
| 299 | - </el-form-item> | ||
| 300 | - </el-col> | ||
| 301 | - </el-row> | ||
| 302 | - <el-row> | ||
| 303 | - <el-col :span="12"> | ||
| 304 | - <el-form-item label="排量毫升" prop="emissions"> | ||
| 305 | - <el-input | ||
| 306 | - v-model="form.emissions" | ||
| 307 | - disabled | ||
| 308 | - placeholder="请输入办理人" | ||
| 309 | - /> | ||
| 310 | - </el-form-item> | ||
| 311 | - </el-col> | ||
| 312 | - <el-col v-if="isCustom" :span="12"> | ||
| 313 | - <el-form-item label="中文品牌" prop="vehicleBrand"> | ||
| 314 | - <el-select | ||
| 315 | - v-model="form.vehicleBrandId" | ||
| 316 | - disabled | ||
| 317 | - style="width: 230px" | ||
| 318 | - > | ||
| 319 | - <el-option | ||
| 320 | - v-for="item in carBrandOption" | ||
| 321 | - :key="item.id" | ||
| 322 | - :label="item.name" | ||
| 323 | - :value="item.id" | ||
| 324 | - /> | ||
| 325 | - </el-select> | ||
| 326 | - </el-form-item> | ||
| 327 | - </el-col> | ||
| 328 | - <el-col v-else :span="12"> | ||
| 329 | - <el-form-item label="中文品牌" prop="vehicleBrand"> | ||
| 330 | - <el-input | ||
| 331 | - v-model="form.customizeVehicleBrand" | ||
| 332 | - disabled | ||
| 333 | - placeholder="中文品牌" | ||
| 334 | - /> | ||
| 335 | - </el-form-item> | ||
| 336 | - </el-col> | ||
| 337 | - </el-row> | ||
| 338 | - <el-row> | ||
| 339 | - <el-col :span="12"> | ||
| 340 | - <el-form-item label="车辆型号" prop="customizeVehicleModel"> | ||
| 341 | - <el-input | ||
| 342 | - v-model="form.customizeVehicleModel" | ||
| 343 | - disabled | ||
| 344 | - placeholder="请输入车辆型号" | ||
| 345 | - /> | ||
| 346 | - </el-form-item> | ||
| 347 | - </el-col> | ||
| 348 | - <el-col :span="12"> | ||
| 349 | - <el-form-item label="准牵引准质量" prop="tractionMass"> | ||
| 350 | - <el-input | ||
| 351 | - v-model="form.tractionMass" | ||
| 352 | - disabled | ||
| 353 | - placeholder="请输入办理人" | ||
| 354 | - /> | ||
| 355 | - </el-form-item> | ||
| 356 | - </el-col> | ||
| 357 | - </el-row> | ||
| 358 | - <el-row> | ||
| 359 | - <el-col :span="12"> | ||
| 360 | - <el-form-item label="号牌种类" prop="customizeVehicleModel"> | ||
| 361 | - <el-select | ||
| 362 | - v-model="form.lincensePlateTypeId" | ||
| 363 | - disabled | ||
| 364 | - style="width: 230px" | ||
| 365 | - > | ||
| 366 | - <el-option | ||
| 367 | - v-for="item in carNumOption" | ||
| 368 | - :key="item.id" | ||
| 369 | - :label="item.name" | ||
| 370 | - :value="item.id" | ||
| 371 | - /> | ||
| 372 | - </el-select> | ||
| 373 | - </el-form-item> | ||
| 374 | - </el-col> | ||
| 375 | <el-col :span="12"> | 311 | <el-col :span="12"> |
| 376 | <el-form-item label="保险需求" prop="requirements"> | 312 | <el-form-item label="保险需求" prop="requirements"> |
| 377 | <el-select | 313 | <el-select |
| @@ -427,18 +363,17 @@ import { | @@ -427,18 +363,17 @@ import { | ||
| 427 | queryDefeatContent, | 363 | queryDefeatContent, |
| 428 | getCarDetail, | 364 | getCarDetail, |
| 429 | } from "@/api/policy"; | 365 | } from "@/api/policy"; |
| 430 | -import { queryCarType } from "@/api/configurationCenter/carType.js"; | ||
| 431 | import { queryCarNature } from "@/api/configurationCenter/carNature.js"; | 366 | import { queryCarNature } from "@/api/configurationCenter/carNature.js"; |
| 432 | -import { queryCarBrand } from "@/api/configurationCenter/carBrand.js"; | ||
| 433 | -import { queryCarNum } from "@/api/configurationCenter/carNum.js"; | ||
| 434 | import { queryNeed } from "@/api/configurationCenter/need.js"; | 367 | import { queryNeed } from "@/api/configurationCenter/need.js"; |
| 435 | -import { reactive } from "vue"; | 368 | +import { computed, reactive } from "vue"; |
| 369 | +import { intervalTime } from "@/utils/intervalTime"; | ||
| 436 | const { proxy } = getCurrentInstance(); | 370 | const { proxy } = getCurrentInstance(); |
| 437 | const loading = ref(false); | 371 | const loading = ref(false); |
| 438 | const total = ref(0); | 372 | const total = ref(0); |
| 439 | const open = ref(false); | 373 | const open = ref(false); |
| 440 | const isCustom = ref(false); | 374 | const isCustom = ref(false); |
| 441 | const labelTitle = ref("保单回馈"); | 375 | const labelTitle = ref("保单回馈"); |
| 376 | +// 表单 | ||
| 442 | const form = ref({ | 377 | const form = ref({ |
| 443 | name: "", | 378 | name: "", |
| 444 | identificationNumber: "", | 379 | identificationNumber: "", |
| @@ -461,10 +396,12 @@ const form = ref({ | @@ -461,10 +396,12 @@ const form = ref({ | ||
| 461 | requirementsId: "", | 396 | requirementsId: "", |
| 462 | }); | 397 | }); |
| 463 | const showSearch = ref(true); | 398 | const showSearch = ref(true); |
| 399 | +// 请求选项参数 | ||
| 464 | const getParams = reactive({ | 400 | const getParams = reactive({ |
| 465 | pageNum: 1, | 401 | pageNum: 1, |
| 466 | pageSize: 100, | 402 | pageSize: 100, |
| 467 | }); | 403 | }); |
| 404 | +// 查询参数 | ||
| 468 | const queryParams = reactive({ | 405 | const queryParams = reactive({ |
| 469 | pageNum: 1, | 406 | pageNum: 1, |
| 470 | pageSize: 10, | 407 | pageSize: 10, |
| @@ -479,9 +416,6 @@ const queryParams = reactive({ | @@ -479,9 +416,6 @@ const queryParams = reactive({ | ||
| 479 | startTime: "", | 416 | startTime: "", |
| 480 | endTime: "", | 417 | endTime: "", |
| 481 | }); | 418 | }); |
| 482 | -const hasRole = computed(() => { | ||
| 483 | - return !proxy.$auth.hasRole("associationemployee"); | ||
| 484 | -}); | ||
| 485 | const timeFrame = ref(null); | 419 | const timeFrame = ref(null); |
| 486 | const statusOption = ref([ | 420 | const statusOption = ref([ |
| 487 | { | 421 | { |
| @@ -527,22 +461,29 @@ const options = [ | @@ -527,22 +461,29 @@ const options = [ | ||
| 527 | label: "人工分配", | 461 | label: "人工分配", |
| 528 | }, | 462 | }, |
| 529 | ]; | 463 | ]; |
| 530 | - | 464 | +// 保单列表 |
| 531 | const policyList = ref([]); | 465 | const policyList = ref([]); |
| 532 | -// 号牌种类 | ||
| 533 | -const carNumOption = ref([]); | ||
| 534 | -const getCarNumOption = async () => { | ||
| 535 | - const { data } = await queryCarNum(getParams); | ||
| 536 | - carNumOption.value = data.records; | ||
| 537 | -}; | ||
| 538 | -getCarNumOption(); | ||
| 539 | -// 车辆类型 | ||
| 540 | -const carTypeOption = ref([]); | ||
| 541 | -const getCarTypeOption = async () => { | ||
| 542 | - const { data } = await queryCarType(getParams); | ||
| 543 | - carTypeOption.value = data.records; | ||
| 544 | -}; | ||
| 545 | -getCarTypeOption(); | 466 | + |
| 467 | +// 计算时效 | ||
| 468 | +const timeDifference = computed(() => (row) => { | ||
| 469 | + let startTime = ""; | ||
| 470 | + let endTime = ""; | ||
| 471 | + // 判断协会是否处理了,如果没有则不计算时效 | ||
| 472 | + if (row.distributionTime !== null) { | ||
| 473 | + startTime = new Date(row.distributionTime); | ||
| 474 | + } else { | ||
| 475 | + return "无"; | ||
| 476 | + } | ||
| 477 | + // 判断结束时间,已办结时间为最后时间,如果没有则使用员工承接时间 | ||
| 478 | + if (row.policyTime !== null) { | ||
| 479 | + endTime = new Date(row.policyTime); | ||
| 480 | + } else if (row.companyEmployeeUndertakeTime !== null) { | ||
| 481 | + endTime = new Date(row.companyEmployeeUndertakeTime); | ||
| 482 | + } else { | ||
| 483 | + endTime = Date.now(); | ||
| 484 | + } | ||
| 485 | + return intervalTime(startTime, endTime); | ||
| 486 | +}); | ||
| 546 | // 车辆使用性质 | 487 | // 车辆使用性质 |
| 547 | const carNatureOption = ref([]); | 488 | const carNatureOption = ref([]); |
| 548 | const getcarNatureOption = async () => { | 489 | const getcarNatureOption = async () => { |
| @@ -550,13 +491,6 @@ const getcarNatureOption = async () => { | @@ -550,13 +491,6 @@ const getcarNatureOption = async () => { | ||
| 550 | carNatureOption.value = data.records; | 491 | carNatureOption.value = data.records; |
| 551 | }; | 492 | }; |
| 552 | getcarNatureOption(); | 493 | getcarNatureOption(); |
| 553 | -// 中文品牌 | ||
| 554 | -const carBrandOption = ref([]); | ||
| 555 | -const getCarBrandOption = async () => { | ||
| 556 | - const { data } = await queryCarBrand(getParams); | ||
| 557 | - carBrandOption.value = data.records; | ||
| 558 | -}; | ||
| 559 | -getCarBrandOption(); | ||
| 560 | 494 | ||
| 561 | // 保险需求 | 495 | // 保险需求 |
| 562 | const needOption = ref([]); | 496 | const needOption = ref([]); |
| @@ -566,10 +500,23 @@ const getNeedOption = async () => { | @@ -566,10 +500,23 @@ const getNeedOption = async () => { | ||
| 566 | }; | 500 | }; |
| 567 | getNeedOption(); | 501 | getNeedOption(); |
| 568 | 502 | ||
| 503 | +/** 导出按钮操作 */ | ||
| 504 | +function handleExport() { | ||
| 505 | + proxy.download( | ||
| 506 | + "registration/monitor/export", | ||
| 507 | + { | ||
| 508 | + ...queryParams, | ||
| 509 | + }, | ||
| 510 | + `user_${new Date().getTime()}.xlsx` | ||
| 511 | + ); | ||
| 512 | +} | ||
| 513 | + | ||
| 514 | +// 选择时间范围 | ||
| 569 | const handleTime = (valu) => { | 515 | const handleTime = (valu) => { |
| 570 | queryParams.startTime = proxy.parseTime(valu[0]); | 516 | queryParams.startTime = proxy.parseTime(valu[0]); |
| 571 | queryParams.endTime = proxy.parseTime(valu[1]); | 517 | queryParams.endTime = proxy.parseTime(valu[1]); |
| 572 | }; | 518 | }; |
| 519 | +// 获取保单列表 | ||
| 573 | const getList = async () => { | 520 | const getList = async () => { |
| 574 | loading.value = true; | 521 | loading.value = true; |
| 575 | const res = await queryList(queryParams); | 522 | const res = await queryList(queryParams); |
| @@ -592,6 +539,7 @@ const queryRemark = async (row) => { | @@ -592,6 +539,7 @@ const queryRemark = async (row) => { | ||
| 592 | labelTitle.value = "作废备注"; | 539 | labelTitle.value = "作废备注"; |
| 593 | const { data } = await queryDefeatContent({ | 540 | const { data } = await queryDefeatContent({ |
| 594 | processInstanceId: row.processInstanceId, | 541 | processInstanceId: row.processInstanceId, |
| 542 | + type: 2, | ||
| 595 | }); | 543 | }); |
| 596 | form.value.comment = data.message; | 544 | form.value.comment = data.message; |
| 597 | open.value = true; | 545 | open.value = true; |
| @@ -616,6 +564,8 @@ function handleQuery() { | @@ -616,6 +564,8 @@ function handleQuery() { | ||
| 616 | /** 重置按钮操作 */ | 564 | /** 重置按钮操作 */ |
| 617 | function resetQuery() { | 565 | function resetQuery() { |
| 618 | proxy.resetForm("queryRef"); | 566 | proxy.resetForm("queryRef"); |
| 567 | + queryParams.startTime = ""; | ||
| 568 | + queryParams.endTime = ""; | ||
| 619 | handleQuery(); | 569 | handleQuery(); |
| 620 | } | 570 | } |
| 621 | const submit = async () => { | 571 | const submit = async () => { |
| 1 | - | ||
| 2 | <template> | 1 | <template> |
| 3 | - <div class="app-container"> | ||
| 4 | - <el-form :model="queryParams" ref="queryRef" v-show="showSearch" :inline="true"> | ||
| 5 | - <el-form-item label="用户名称" prop="userName"> | ||
| 6 | - <el-input | ||
| 7 | - v-model="queryParams.userName" | ||
| 8 | - placeholder="请输入用户名称" | ||
| 9 | - clearable | ||
| 10 | - style="width: 240px" | ||
| 11 | - @keyup.enter="handleQuery" | ||
| 12 | - /> | ||
| 13 | - </el-form-item> | ||
| 14 | - <el-form-item label="手机号码" prop="phonenumber"> | ||
| 15 | - <el-input | ||
| 16 | - v-model="queryParams.phonenumber" | ||
| 17 | - placeholder="请输入手机号码" | ||
| 18 | - clearable | ||
| 19 | - style="width: 240px" | ||
| 20 | - @keyup.enter="handleQuery" | ||
| 21 | - /> | ||
| 22 | - </el-form-item> | ||
| 23 | - <el-form-item> | ||
| 24 | - <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> | ||
| 25 | - <el-button icon="Refresh" @click="resetQuery">重置</el-button> | ||
| 26 | - </el-form-item> | ||
| 27 | - </el-form> | ||
| 28 | - | ||
| 29 | - <el-row :gutter="10" class="mb8"> | ||
| 30 | - <el-col :span="1.5"> | ||
| 31 | - <el-button | ||
| 32 | - type="primary" | ||
| 33 | - plain | ||
| 34 | - icon="Plus" | ||
| 35 | - @click="openSelectUser" | ||
| 36 | - v-hasPermi="['system:role:add']" | ||
| 37 | - >添加用户</el-button> | ||
| 38 | - </el-col> | ||
| 39 | - <el-col :span="1.5"> | ||
| 40 | - <el-button | ||
| 41 | - type="danger" | ||
| 42 | - plain | ||
| 43 | - icon="CircleClose" | ||
| 44 | - :disabled="multiple" | ||
| 45 | - @click="cancelAuthUserAll" | ||
| 46 | - v-hasPermi="['system:role:remove']" | ||
| 47 | - >批量取消授权</el-button> | ||
| 48 | - </el-col> | ||
| 49 | - <el-col :span="1.5"> | ||
| 50 | - <el-button | ||
| 51 | - type="warning" | ||
| 52 | - plain | ||
| 53 | - icon="Close" | ||
| 54 | - @click="handleClose" | ||
| 55 | - >关闭</el-button> | ||
| 56 | - </el-col> | ||
| 57 | - <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> | ||
| 58 | - </el-row> | 2 | + <div class="app-container"> |
| 3 | + <el-form | ||
| 4 | + :model="queryParams" | ||
| 5 | + ref="queryRef" | ||
| 6 | + v-show="showSearch" | ||
| 7 | + :inline="true" | ||
| 8 | + > | ||
| 9 | + <el-form-item label="用户名称" prop="userName"> | ||
| 10 | + <el-input | ||
| 11 | + v-model="queryParams.userName" | ||
| 12 | + placeholder="请输入用户名称" | ||
| 13 | + clearable | ||
| 14 | + style="width: 240px" | ||
| 15 | + @keyup.enter="handleQuery" | ||
| 16 | + /> | ||
| 17 | + </el-form-item> | ||
| 18 | + <el-form-item label="手机号码" prop="phonenumber"> | ||
| 19 | + <el-input | ||
| 20 | + v-model="queryParams.phonenumber" | ||
| 21 | + placeholder="请输入手机号码" | ||
| 22 | + clearable | ||
| 23 | + style="width: 240px" | ||
| 24 | + @keyup.enter="handleQuery" | ||
| 25 | + /> | ||
| 26 | + </el-form-item> | ||
| 27 | + <el-form-item> | ||
| 28 | + <el-button type="primary" icon="Search" @click="handleQuery" | ||
| 29 | + >搜索</el-button | ||
| 30 | + > | ||
| 31 | + <el-button icon="Refresh" @click="resetQuery">重置</el-button> | ||
| 32 | + </el-form-item> | ||
| 33 | + </el-form> | ||
| 59 | 34 | ||
| 60 | - <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> | ||
| 61 | - <el-table-column type="selection" width="55" align="center" /> | ||
| 62 | - <el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" /> | ||
| 63 | - <el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" /> | ||
| 64 | - <el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" /> | ||
| 65 | - <el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" /> | ||
| 66 | - <el-table-column label="状态" align="center" prop="status"> | ||
| 67 | - <template #default="scope"> | ||
| 68 | - <dict-tag :options="sys_normal_disable" :value="scope.row.status" /> | ||
| 69 | - </template> | ||
| 70 | - </el-table-column> | ||
| 71 | - <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | ||
| 72 | - <template #default="scope"> | ||
| 73 | - <span>{{ parseTime(scope.row.createTime) }}</span> | ||
| 74 | - </template> | ||
| 75 | - </el-table-column> | ||
| 76 | - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||
| 77 | - <template #default="scope"> | ||
| 78 | - <el-button link type="primary" icon="CircleClose" @click="cancelAuthUser(scope.row)" v-hasPermi="['system:role:remove']">取消授权</el-button> | ||
| 79 | - </template> | ||
| 80 | - </el-table-column> | ||
| 81 | - </el-table> | 35 | + <el-row :gutter="10" class="mb8"> |
| 36 | + <el-col :span="1.5"> | ||
| 37 | + <el-button | ||
| 38 | + type="primary" | ||
| 39 | + plain | ||
| 40 | + icon="Plus" | ||
| 41 | + @click="openSelectUser" | ||
| 42 | + v-hasPermi="['system:role:add']" | ||
| 43 | + >添加用户</el-button | ||
| 44 | + > | ||
| 45 | + </el-col> | ||
| 46 | + <el-col :span="1.5"> | ||
| 47 | + <el-button | ||
| 48 | + type="danger" | ||
| 49 | + plain | ||
| 50 | + icon="CircleClose" | ||
| 51 | + :disabled="multiple" | ||
| 52 | + @click="cancelAuthUserAll" | ||
| 53 | + v-hasPermi="['system:role:remove']" | ||
| 54 | + >批量取消授权</el-button | ||
| 55 | + > | ||
| 56 | + </el-col> | ||
| 57 | + <el-col :span="1.5"> | ||
| 58 | + <el-button type="warning" plain icon="Close" @click="handleClose" | ||
| 59 | + >关闭</el-button | ||
| 60 | + > | ||
| 61 | + </el-col> | ||
| 62 | + <right-toolbar | ||
| 63 | + v-model:showSearch="showSearch" | ||
| 64 | + @queryTable="getList" | ||
| 65 | + ></right-toolbar> | ||
| 66 | + </el-row> | ||
| 82 | 67 | ||
| 83 | - <pagination | ||
| 84 | - v-show="total > 0" | ||
| 85 | - :total="total" | ||
| 86 | - v-model:page="queryParams.pageNum" | ||
| 87 | - v-model:limit="queryParams.pageSize" | ||
| 88 | - @pagination="getList" | 68 | + <el-table |
| 69 | + v-loading="loading" | ||
| 70 | + :data="userList" | ||
| 71 | + @selection-change="handleSelectionChange" | ||
| 72 | + > | ||
| 73 | + <el-table-column type="selection" width="55" align="center" /> | ||
| 74 | + <el-table-column | ||
| 75 | + label="用户名称" | ||
| 76 | + prop="userName" | ||
| 77 | + :show-overflow-tooltip="true" | ||
| 78 | + /> | ||
| 79 | + <el-table-column | ||
| 80 | + label="用户姓名" | ||
| 81 | + prop="nickName" | ||
| 82 | + :show-overflow-tooltip="true" | ||
| 89 | /> | 83 | /> |
| 90 | - <select-user ref="selectRef" :roleId="queryParams.roleId" @ok="handleQuery" /> | ||
| 91 | - </div> | 84 | + <el-table-column |
| 85 | + label="邮箱" | ||
| 86 | + prop="email" | ||
| 87 | + :show-overflow-tooltip="true" | ||
| 88 | + /> | ||
| 89 | + <el-table-column | ||
| 90 | + label="手机" | ||
| 91 | + prop="phonenumber" | ||
| 92 | + :show-overflow-tooltip="true" | ||
| 93 | + /> | ||
| 94 | + <el-table-column label="状态" align="center" prop="status"> | ||
| 95 | + <template #default="scope"> | ||
| 96 | + <dict-tag :options="sys_normal_disable" :value="scope.row.status" /> | ||
| 97 | + </template> | ||
| 98 | + </el-table-column> | ||
| 99 | + <el-table-column | ||
| 100 | + label="创建时间" | ||
| 101 | + align="center" | ||
| 102 | + prop="createTime" | ||
| 103 | + width="180" | ||
| 104 | + > | ||
| 105 | + <template #default="scope"> | ||
| 106 | + <span>{{ parseTime(scope.row.createTime) }}</span> | ||
| 107 | + </template> | ||
| 108 | + </el-table-column> | ||
| 109 | + <el-table-column | ||
| 110 | + label="操作" | ||
| 111 | + align="center" | ||
| 112 | + class-name="small-padding fixed-width" | ||
| 113 | + > | ||
| 114 | + <template #default="scope"> | ||
| 115 | + <el-button | ||
| 116 | + link | ||
| 117 | + type="primary" | ||
| 118 | + icon="CircleClose" | ||
| 119 | + @click="cancelAuthUser(scope.row)" | ||
| 120 | + v-hasPermi="['system:role:remove']" | ||
| 121 | + >取消授权</el-button | ||
| 122 | + > | ||
| 123 | + </template> | ||
| 124 | + </el-table-column> | ||
| 125 | + </el-table> | ||
| 126 | + | ||
| 127 | + <pagination | ||
| 128 | + v-show="total > 0" | ||
| 129 | + :total="total" | ||
| 130 | + v-model:page="queryParams.pageNum" | ||
| 131 | + v-model:limit="queryParams.pageSize" | ||
| 132 | + @pagination="getList" | ||
| 133 | + /> | ||
| 134 | + <select-user | ||
| 135 | + ref="selectRef" | ||
| 136 | + :roleId="queryParams.roleId" | ||
| 137 | + @ok="handleQuery" | ||
| 138 | + /> | ||
| 139 | + </div> | ||
| 92 | </template> | 140 | </template> |
| 93 | 141 | ||
| 94 | <script setup name="AuthUser"> | 142 | <script setup name="AuthUser"> |
| 95 | import selectUser from "./selectUser"; | 143 | import selectUser from "./selectUser"; |
| 96 | -import { allocatedUserList, authUserCancel, authUserCancelAll } from "@/api/system/role"; | 144 | +import { |
| 145 | + allocatedUserList, | ||
| 146 | + authUserCancel, | ||
| 147 | + authUserCancelAll, | ||
| 148 | +} from "@/api/system/role"; | ||
| 97 | 149 | ||
| 98 | const route = useRoute(); | 150 | const route = useRoute(); |
| 99 | const { proxy } = getCurrentInstance(); | 151 | const { proxy } = getCurrentInstance(); |
| @@ -117,7 +169,7 @@ const queryParams = reactive({ | @@ -117,7 +169,7 @@ const queryParams = reactive({ | ||
| 117 | /** 查询授权用户列表 */ | 169 | /** 查询授权用户列表 */ |
| 118 | function getList() { | 170 | function getList() { |
| 119 | loading.value = true; | 171 | loading.value = true; |
| 120 | - allocatedUserList(queryParams).then(response => { | 172 | + allocatedUserList(queryParams).then((response) => { |
| 121 | userList.value = response.rows; | 173 | userList.value = response.rows; |
| 122 | total.value = response.total; | 174 | total.value = response.total; |
| 123 | loading.value = false; | 175 | loading.value = false; |
| @@ -140,7 +192,7 @@ function resetQuery() { | @@ -140,7 +192,7 @@ function resetQuery() { | ||
| 140 | } | 192 | } |
| 141 | // 多选框选中数据 | 193 | // 多选框选中数据 |
| 142 | function handleSelectionChange(selection) { | 194 | function handleSelectionChange(selection) { |
| 143 | - userIds.value = selection.map(item => item.userId); | 195 | + userIds.value = selection.map((item) => item.userId); |
| 144 | multiple.value = !selection.length; | 196 | multiple.value = !selection.length; |
| 145 | } | 197 | } |
| 146 | /** 打开授权用户表弹窗 */ | 198 | /** 打开授权用户表弹窗 */ |
| @@ -149,23 +201,31 @@ function openSelectUser() { | @@ -149,23 +201,31 @@ function openSelectUser() { | ||
| 149 | } | 201 | } |
| 150 | /** 取消授权按钮操作 */ | 202 | /** 取消授权按钮操作 */ |
| 151 | function cancelAuthUser(row) { | 203 | function cancelAuthUser(row) { |
| 152 | - proxy.$modal.confirm('确认要取消该用户"' + row.userName + '"角色吗?').then(function () { | ||
| 153 | - return authUserCancel({ userId: row.userId, roleId: queryParams.roleId }); | ||
| 154 | - }).then(() => { | ||
| 155 | - getList(); | ||
| 156 | - proxy.$modal.msgSuccess("取消授权成功"); | ||
| 157 | - }).catch(() => {}); | 204 | + proxy.$modal |
| 205 | + .confirm('确认要取消该用户"' + row.userName + '"角色吗?') | ||
| 206 | + .then(function () { | ||
| 207 | + return authUserCancel({ userId: row.userId, roleId: queryParams.roleId }); | ||
| 208 | + }) | ||
| 209 | + .then(() => { | ||
| 210 | + getList(); | ||
| 211 | + proxy.$modal.msgSuccess("取消授权成功"); | ||
| 212 | + }) | ||
| 213 | + .catch(() => {}); | ||
| 158 | } | 214 | } |
| 159 | /** 批量取消授权按钮操作 */ | 215 | /** 批量取消授权按钮操作 */ |
| 160 | function cancelAuthUserAll(row) { | 216 | function cancelAuthUserAll(row) { |
| 161 | const roleId = queryParams.roleId; | 217 | const roleId = queryParams.roleId; |
| 162 | const uIds = userIds.value.join(","); | 218 | const uIds = userIds.value.join(","); |
| 163 | - proxy.$modal.confirm("是否取消选中用户授权数据项?").then(function () { | ||
| 164 | - return authUserCancelAll({ roleId: roleId, userIds: uIds }); | ||
| 165 | - }).then(() => { | ||
| 166 | - getList(); | ||
| 167 | - proxy.$modal.msgSuccess("取消授权成功"); | ||
| 168 | - }).catch(() => {}); | 219 | + proxy.$modal |
| 220 | + .confirm("是否取消选中用户授权数据项?") | ||
| 221 | + .then(function () { | ||
| 222 | + return authUserCancelAll({ roleId: roleId, userIds: uIds }); | ||
| 223 | + }) | ||
| 224 | + .then(() => { | ||
| 225 | + getList(); | ||
| 226 | + proxy.$modal.msgSuccess("取消授权成功"); | ||
| 227 | + }) | ||
| 228 | + .catch(() => {}); | ||
| 169 | } | 229 | } |
| 170 | 230 | ||
| 171 | getList(); | 231 | getList(); |
| 1 | <template> | 1 | <template> |
| 2 | - <!-- 授权用户 --> | ||
| 3 | - <el-dialog title="选择用户" v-model="visible" width="800px" top="5vh" append-to-body> | ||
| 4 | - <el-form :model="queryParams" ref="queryRef" :inline="true"> | ||
| 5 | - <el-form-item label="用户名称" prop="userName"> | ||
| 6 | - <el-input | ||
| 7 | - v-model="queryParams.userName" | ||
| 8 | - placeholder="请输入用户名称" | ||
| 9 | - clearable | ||
| 10 | - style="width: 200px" | ||
| 11 | - @keyup.enter="handleQuery" | ||
| 12 | - /> | ||
| 13 | - </el-form-item> | ||
| 14 | - <el-form-item label="手机号码" prop="phonenumber"> | ||
| 15 | - <el-input | ||
| 16 | - v-model="queryParams.phonenumber" | ||
| 17 | - placeholder="请输入手机号码" | ||
| 18 | - clearable | ||
| 19 | - style="width: 200px" | ||
| 20 | - @keyup.enter="handleQuery" | ||
| 21 | - /> | ||
| 22 | - </el-form-item> | ||
| 23 | - <el-form-item> | ||
| 24 | - <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> | ||
| 25 | - <el-button icon="Refresh" @click="resetQuery">重置</el-button> | ||
| 26 | - </el-form-item> | ||
| 27 | - </el-form> | ||
| 28 | - <el-row> | ||
| 29 | - <el-table @row-click="clickRow" ref="refTable" :data="userList" @selection-change="handleSelectionChange" height="260px"> | ||
| 30 | - <el-table-column type="selection" width="55"></el-table-column> | ||
| 31 | - <el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" /> | ||
| 32 | - <el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" /> | ||
| 33 | - <el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" /> | ||
| 34 | - <el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" /> | ||
| 35 | - <el-table-column label="状态" align="center" prop="status"> | ||
| 36 | - <template #default="scope"> | ||
| 37 | - <dict-tag :options="sys_normal_disable" :value="scope.row.status" /> | ||
| 38 | - </template> | ||
| 39 | - </el-table-column> | ||
| 40 | - <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | ||
| 41 | - <template #default="scope"> | ||
| 42 | - <span>{{ parseTime(scope.row.createTime) }}</span> | ||
| 43 | - </template> | ||
| 44 | - </el-table-column> | ||
| 45 | - </el-table> | ||
| 46 | - <pagination | ||
| 47 | - v-show="total > 0" | ||
| 48 | - :total="total" | ||
| 49 | - v-model:page="queryParams.pageNum" | ||
| 50 | - v-model:limit="queryParams.pageSize" | ||
| 51 | - @pagination="getList" | ||
| 52 | - /> | ||
| 53 | - </el-row> | ||
| 54 | - <template #footer> | ||
| 55 | - <div class="dialog-footer"> | ||
| 56 | - <el-button type="primary" @click="handleSelectUser">确 定</el-button> | ||
| 57 | - <el-button @click="visible = false">取 消</el-button> | ||
| 58 | - </div> | ||
| 59 | - </template> | ||
| 60 | - </el-dialog> | 2 | + <!-- 授权用户 --> |
| 3 | + <el-dialog | ||
| 4 | + title="选择用户" | ||
| 5 | + v-model="visible" | ||
| 6 | + width="800px" | ||
| 7 | + top="5vh" | ||
| 8 | + append-to-body | ||
| 9 | + > | ||
| 10 | + <el-form :model="queryParams" ref="queryRef" :inline="true"> | ||
| 11 | + <el-form-item label="用户名称" prop="userName"> | ||
| 12 | + <el-input | ||
| 13 | + v-model="queryParams.userName" | ||
| 14 | + placeholder="请输入用户名称" | ||
| 15 | + clearable | ||
| 16 | + style="width: 200px" | ||
| 17 | + @keyup.enter="handleQuery" | ||
| 18 | + /> | ||
| 19 | + </el-form-item> | ||
| 20 | + <el-form-item label="手机号码" prop="phonenumber"> | ||
| 21 | + <el-input | ||
| 22 | + v-model="queryParams.phonenumber" | ||
| 23 | + placeholder="请输入手机号码" | ||
| 24 | + clearable | ||
| 25 | + style="width: 200px" | ||
| 26 | + @keyup.enter="handleQuery" | ||
| 27 | + /> | ||
| 28 | + </el-form-item> | ||
| 29 | + <el-form-item> | ||
| 30 | + <el-button type="primary" icon="Search" @click="handleQuery" | ||
| 31 | + >搜索</el-button | ||
| 32 | + > | ||
| 33 | + <el-button icon="Refresh" @click="resetQuery">重置</el-button> | ||
| 34 | + </el-form-item> | ||
| 35 | + </el-form> | ||
| 36 | + <el-row> | ||
| 37 | + <el-table | ||
| 38 | + @row-click="clickRow" | ||
| 39 | + ref="refTable" | ||
| 40 | + :data="userList" | ||
| 41 | + @selection-change="handleSelectionChange" | ||
| 42 | + height="260px" | ||
| 43 | + > | ||
| 44 | + <el-table-column type="selection" width="55"></el-table-column> | ||
| 45 | + <el-table-column | ||
| 46 | + label="用户名称" | ||
| 47 | + prop="userName" | ||
| 48 | + :show-overflow-tooltip="true" | ||
| 49 | + /> | ||
| 50 | + <el-table-column | ||
| 51 | + label="用户姓名" | ||
| 52 | + prop="nickName" | ||
| 53 | + :show-overflow-tooltip="true" | ||
| 54 | + /> | ||
| 55 | + <el-table-column | ||
| 56 | + label="邮箱" | ||
| 57 | + prop="email" | ||
| 58 | + :show-overflow-tooltip="true" | ||
| 59 | + /> | ||
| 60 | + <el-table-column | ||
| 61 | + label="手机" | ||
| 62 | + prop="phonenumber" | ||
| 63 | + :show-overflow-tooltip="true" | ||
| 64 | + /> | ||
| 65 | + <el-table-column label="状态" align="center" prop="status"> | ||
| 66 | + <template #default="scope"> | ||
| 67 | + <dict-tag :options="sys_normal_disable" :value="scope.row.status" /> | ||
| 68 | + </template> | ||
| 69 | + </el-table-column> | ||
| 70 | + <el-table-column | ||
| 71 | + label="创建时间" | ||
| 72 | + align="center" | ||
| 73 | + prop="createTime" | ||
| 74 | + width="180" | ||
| 75 | + > | ||
| 76 | + <template #default="scope"> | ||
| 77 | + <span>{{ parseTime(scope.row.createTime) }}</span> | ||
| 78 | + </template> | ||
| 79 | + </el-table-column> | ||
| 80 | + </el-table> | ||
| 81 | + <pagination | ||
| 82 | + v-show="total > 0" | ||
| 83 | + :total="total" | ||
| 84 | + v-model:page="queryParams.pageNum" | ||
| 85 | + v-model:limit="queryParams.pageSize" | ||
| 86 | + @pagination="getList" | ||
| 87 | + /> | ||
| 88 | + </el-row> | ||
| 89 | + <template #footer> | ||
| 90 | + <div class="dialog-footer"> | ||
| 91 | + <el-button type="primary" @click="handleSelectUser">确 定</el-button> | ||
| 92 | + <el-button @click="visible = false">取 消</el-button> | ||
| 93 | + </div> | ||
| 94 | + </template> | ||
| 95 | + </el-dialog> | ||
| 61 | </template> | 96 | </template> |
| 62 | 97 | ||
| 63 | <script setup name="SelectUser"> | 98 | <script setup name="SelectUser"> |
| @@ -65,8 +100,8 @@ import { authUserSelectAll, unallocatedUserList } from "@/api/system/role"; | @@ -65,8 +100,8 @@ import { authUserSelectAll, unallocatedUserList } from "@/api/system/role"; | ||
| 65 | 100 | ||
| 66 | const props = defineProps({ | 101 | const props = defineProps({ |
| 67 | roleId: { | 102 | roleId: { |
| 68 | - type: [Number, String] | ||
| 69 | - } | 103 | + type: [Number, String], |
| 104 | + }, | ||
| 70 | }); | 105 | }); |
| 71 | 106 | ||
| 72 | const { proxy } = getCurrentInstance(); | 107 | const { proxy } = getCurrentInstance(); |
| @@ -82,7 +117,7 @@ const queryParams = reactive({ | @@ -82,7 +117,7 @@ const queryParams = reactive({ | ||
| 82 | pageSize: 10, | 117 | pageSize: 10, |
| 83 | roleId: undefined, | 118 | roleId: undefined, |
| 84 | userName: undefined, | 119 | userName: undefined, |
| 85 | - phonenumber: undefined | 120 | + phonenumber: undefined, |
| 86 | }); | 121 | }); |
| 87 | 122 | ||
| 88 | // 显示弹框 | 123 | // 显示弹框 |
| @@ -97,11 +132,11 @@ function clickRow(row) { | @@ -97,11 +132,11 @@ function clickRow(row) { | ||
| 97 | } | 132 | } |
| 98 | // 多选框选中数据 | 133 | // 多选框选中数据 |
| 99 | function handleSelectionChange(selection) { | 134 | function handleSelectionChange(selection) { |
| 100 | - userIds.value = selection.map(item => item.userId); | 135 | + userIds.value = selection.map((item) => item.userId); |
| 101 | } | 136 | } |
| 102 | // 查询表数据 | 137 | // 查询表数据 |
| 103 | function getList() { | 138 | function getList() { |
| 104 | - unallocatedUserList(queryParams).then(res => { | 139 | + unallocatedUserList(queryParams).then((res) => { |
| 105 | userList.value = res.rows; | 140 | userList.value = res.rows; |
| 106 | total.value = res.total; | 141 | total.value = res.total; |
| 107 | }); | 142 | }); |
| @@ -125,7 +160,7 @@ function handleSelectUser() { | @@ -125,7 +160,7 @@ function handleSelectUser() { | ||
| 125 | proxy.$modal.msgError("请选择要分配的用户"); | 160 | proxy.$modal.msgError("请选择要分配的用户"); |
| 126 | return; | 161 | return; |
| 127 | } | 162 | } |
| 128 | - authUserSelectAll({ roleId: roleId, userIds: uIds }).then(res => { | 163 | + authUserSelectAll({ roleId: roleId, userIds: uIds }).then((res) => { |
| 129 | proxy.$modal.msgSuccess(res.msg); | 164 | proxy.$modal.msgSuccess(res.msg); |
| 130 | if (res.code === 200) { | 165 | if (res.code === 200) { |
| 131 | visible.value = false; | 166 | visible.value = false; |
| 1 | <template> | 1 | <template> |
| 2 | - <div class="app-container"> | ||
| 3 | - <h4 class="form-header h4">基本信息</h4> | ||
| 4 | - <el-form :model="form" label-width="80px"> | ||
| 5 | - <el-row> | ||
| 6 | - <el-col :span="8" :offset="2"> | ||
| 7 | - <el-form-item label="用户昵称" prop="nickName"> | ||
| 8 | - <el-input v-model="form.nickName" disabled /> | ||
| 9 | - </el-form-item> | ||
| 10 | - </el-col> | ||
| 11 | - <el-col :span="8" :offset="2"> | ||
| 12 | - <el-form-item label="登录账号" prop="userName"> | ||
| 13 | - <el-input v-model="form.userName" disabled /> | ||
| 14 | - </el-form-item> | ||
| 15 | - </el-col> | ||
| 16 | - </el-row> | ||
| 17 | - </el-form> | 2 | + <div class="app-container"> |
| 3 | + <h4 class="form-header h4">基本信息</h4> | ||
| 4 | + <el-form :model="form" label-width="80px"> | ||
| 5 | + <el-row> | ||
| 6 | + <el-col :span="8" :offset="2"> | ||
| 7 | + <el-form-item label="用户姓名" prop="nickName"> | ||
| 8 | + <el-input v-model="form.nickName" disabled /> | ||
| 9 | + </el-form-item> | ||
| 10 | + </el-col> | ||
| 11 | + <el-col :span="8" :offset="2"> | ||
| 12 | + <el-form-item label="登录账号" prop="userName"> | ||
| 13 | + <el-input v-model="form.userName" disabled /> | ||
| 14 | + </el-form-item> | ||
| 15 | + </el-col> | ||
| 16 | + </el-row> | ||
| 17 | + </el-form> | ||
| 18 | 18 | ||
| 19 | - <h4 class="form-header h4">角色信息</h4> | ||
| 20 | - <el-table v-loading="loading" :row-key="getRowKey" @row-click="clickRow" ref="roleRef" @selection-change="handleSelectionChange" :data="roles.slice((pageNum - 1) * pageSize, pageNum * pageSize)"> | ||
| 21 | - <el-table-column label="序号" width="55" type="index" align="center"> | ||
| 22 | - <template #default="scope"> | ||
| 23 | - <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span> | ||
| 24 | - </template> | ||
| 25 | - </el-table-column> | ||
| 26 | - <el-table-column type="selection" :reserve-selection="true" width="55"></el-table-column> | ||
| 27 | - <el-table-column label="角色编号" align="center" prop="roleId" /> | ||
| 28 | - <el-table-column label="角色名称" align="center" prop="roleName" /> | ||
| 29 | - <el-table-column label="权限字符" align="center" prop="roleKey" /> | ||
| 30 | - <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | ||
| 31 | - <template #default="scope"> | ||
| 32 | - <span>{{ parseTime(scope.row.createTime) }}</span> | ||
| 33 | - </template> | ||
| 34 | - </el-table-column> | ||
| 35 | - </el-table> | 19 | + <h4 class="form-header h4">角色信息</h4> |
| 20 | + <el-table | ||
| 21 | + v-loading="loading" | ||
| 22 | + :row-key="getRowKey" | ||
| 23 | + @row-click="clickRow" | ||
| 24 | + ref="roleRef" | ||
| 25 | + @selection-change="handleSelectionChange" | ||
| 26 | + :data="roles.slice((pageNum - 1) * pageSize, pageNum * pageSize)" | ||
| 27 | + > | ||
| 28 | + <el-table-column label="序号" width="55" type="index" align="center"> | ||
| 29 | + <template #default="scope"> | ||
| 30 | + <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span> | ||
| 31 | + </template> | ||
| 32 | + </el-table-column> | ||
| 33 | + <el-table-column | ||
| 34 | + type="selection" | ||
| 35 | + :reserve-selection="true" | ||
| 36 | + width="55" | ||
| 37 | + ></el-table-column> | ||
| 38 | + <el-table-column label="角色编号" align="center" prop="roleId" /> | ||
| 39 | + <el-table-column label="角色名称" align="center" prop="roleName" /> | ||
| 40 | + <el-table-column label="权限字符" align="center" prop="roleKey" /> | ||
| 41 | + <el-table-column | ||
| 42 | + label="创建时间" | ||
| 43 | + align="center" | ||
| 44 | + prop="createTime" | ||
| 45 | + width="180" | ||
| 46 | + > | ||
| 47 | + <template #default="scope"> | ||
| 48 | + <span>{{ parseTime(scope.row.createTime) }}</span> | ||
| 49 | + </template> | ||
| 50 | + </el-table-column> | ||
| 51 | + </el-table> | ||
| 36 | 52 | ||
| 37 | - <pagination v-show="total > 0" :total="total" v-model:page="pageNum" v-model:limit="pageSize" /> | 53 | + <pagination |
| 54 | + v-show="total > 0" | ||
| 55 | + :total="total" | ||
| 56 | + v-model:page="pageNum" | ||
| 57 | + v-model:limit="pageSize" | ||
| 58 | + /> | ||
| 38 | 59 | ||
| 39 | - <el-form label-width="100px"> | ||
| 40 | - <div style="text-align: center;margin-left:-120px;margin-top:30px;"> | ||
| 41 | - <el-button type="primary" @click="submitForm()">提交</el-button> | ||
| 42 | - <el-button @click="close()">返回</el-button> | ||
| 43 | - </div> | ||
| 44 | - </el-form> | ||
| 45 | - </div> | 60 | + <el-form label-width="100px"> |
| 61 | + <div style="text-align: center; margin-left: -120px; margin-top: 30px"> | ||
| 62 | + <el-button type="primary" @click="submitForm()">提交</el-button> | ||
| 63 | + <el-button @click="close()">返回</el-button> | ||
| 64 | + </div> | ||
| 65 | + </el-form> | ||
| 66 | + </div> | ||
| 46 | </template> | 67 | </template> |
| 47 | 68 | ||
| 48 | <script setup name="AuthRole"> | 69 | <script setup name="AuthRole"> |
| @@ -60,46 +81,46 @@ const roles = ref([]); | @@ -60,46 +81,46 @@ const roles = ref([]); | ||
| 60 | const form = ref({ | 81 | const form = ref({ |
| 61 | nickName: undefined, | 82 | nickName: undefined, |
| 62 | userName: undefined, | 83 | userName: undefined, |
| 63 | - userId: undefined | 84 | + userId: undefined, |
| 64 | }); | 85 | }); |
| 65 | 86 | ||
| 66 | /** 单击选中行数据 */ | 87 | /** 单击选中行数据 */ |
| 67 | function clickRow(row) { | 88 | function clickRow(row) { |
| 68 | proxy.$refs["roleRef"].toggleRowSelection(row); | 89 | proxy.$refs["roleRef"].toggleRowSelection(row); |
| 69 | -}; | 90 | +} |
| 70 | /** 多选框选中数据 */ | 91 | /** 多选框选中数据 */ |
| 71 | function handleSelectionChange(selection) { | 92 | function handleSelectionChange(selection) { |
| 72 | - roleIds.value = selection.map(item => item.roleId); | ||
| 73 | -}; | 93 | + roleIds.value = selection.map((item) => item.roleId); |
| 94 | +} | ||
| 74 | /** 保存选中的数据编号 */ | 95 | /** 保存选中的数据编号 */ |
| 75 | function getRowKey(row) { | 96 | function getRowKey(row) { |
| 76 | return row.roleId; | 97 | return row.roleId; |
| 77 | -}; | 98 | +} |
| 78 | /** 关闭按钮 */ | 99 | /** 关闭按钮 */ |
| 79 | function close() { | 100 | function close() { |
| 80 | const obj = { path: "/system/user" }; | 101 | const obj = { path: "/system/user" }; |
| 81 | proxy.$tab.closeOpenPage(obj); | 102 | proxy.$tab.closeOpenPage(obj); |
| 82 | -}; | 103 | +} |
| 83 | /** 提交按钮 */ | 104 | /** 提交按钮 */ |
| 84 | function submitForm() { | 105 | function submitForm() { |
| 85 | const userId = form.value.userId; | 106 | const userId = form.value.userId; |
| 86 | const rIds = roleIds.value.join(","); | 107 | const rIds = roleIds.value.join(","); |
| 87 | - updateAuthRole({ userId: userId, roleIds: rIds }).then(response => { | 108 | + updateAuthRole({ userId: userId, roleIds: rIds }).then((response) => { |
| 88 | proxy.$modal.msgSuccess("授权成功"); | 109 | proxy.$modal.msgSuccess("授权成功"); |
| 89 | close(); | 110 | close(); |
| 90 | }); | 111 | }); |
| 91 | -}; | 112 | +} |
| 92 | 113 | ||
| 93 | (() => { | 114 | (() => { |
| 94 | const userId = route.params && route.params.userId; | 115 | const userId = route.params && route.params.userId; |
| 95 | if (userId) { | 116 | if (userId) { |
| 96 | loading.value = true; | 117 | loading.value = true; |
| 97 | - getAuthRole(userId).then(response => { | 118 | + getAuthRole(userId).then((response) => { |
| 98 | form.value = response.user; | 119 | form.value = response.user; |
| 99 | roles.value = response.roles; | 120 | roles.value = response.roles; |
| 100 | total.value = roles.value.length; | 121 | total.value = roles.value.length; |
| 101 | nextTick(() => { | 122 | nextTick(() => { |
| 102 | - roles.value.forEach(row => { | 123 | + roles.value.forEach((row) => { |
| 103 | if (row.flag) { | 124 | if (row.flag) { |
| 104 | proxy.$refs["roleRef"].toggleRowSelection(row); | 125 | proxy.$refs["roleRef"].toggleRowSelection(row); |
| 105 | } | 126 | } |
| @@ -168,7 +168,7 @@ | @@ -168,7 +168,7 @@ | ||
| 168 | :show-overflow-tooltip="true" | 168 | :show-overflow-tooltip="true" |
| 169 | /> | 169 | /> |
| 170 | <el-table-column | 170 | <el-table-column |
| 171 | - label="用户昵称" | 171 | + label="用户姓名" |
| 172 | align="center" | 172 | align="center" |
| 173 | key="nickName" | 173 | key="nickName" |
| 174 | prop="nickName" | 174 | prop="nickName" |
| @@ -294,10 +294,10 @@ | @@ -294,10 +294,10 @@ | ||
| 294 | <el-form :model="form" :rules="rules" ref="userRef" label-width="80px"> | 294 | <el-form :model="form" :rules="rules" ref="userRef" label-width="80px"> |
| 295 | <el-row> | 295 | <el-row> |
| 296 | <el-col :span="12"> | 296 | <el-col :span="12"> |
| 297 | - <el-form-item label="用户昵称" prop="nickName"> | 297 | + <el-form-item label="用户姓名" prop="nickName"> |
| 298 | <el-input | 298 | <el-input |
| 299 | v-model="form.nickName" | 299 | v-model="form.nickName" |
| 300 | - placeholder="请输入用户昵称" | 300 | + placeholder="请输入用户姓名" |
| 301 | maxlength="30" | 301 | maxlength="30" |
| 302 | /> | 302 | /> |
| 303 | </el-form-item> | 303 | </el-form-item> |
| @@ -542,7 +542,7 @@ const upload = reactive({ | @@ -542,7 +542,7 @@ const upload = reactive({ | ||
| 542 | const columns = ref([ | 542 | const columns = ref([ |
| 543 | { key: 0, label: `用户编号`, visible: true }, | 543 | { key: 0, label: `用户编号`, visible: true }, |
| 544 | { key: 1, label: `用户名称`, visible: true }, | 544 | { key: 1, label: `用户名称`, visible: true }, |
| 545 | - { key: 2, label: `用户昵称`, visible: true }, | 545 | + { key: 2, label: `用户姓名`, visible: true }, |
| 546 | { key: 3, label: `部门`, visible: true }, | 546 | { key: 3, label: `部门`, visible: true }, |
| 547 | { key: 4, label: `手机号码`, visible: true }, | 547 | { key: 4, label: `手机号码`, visible: true }, |
| 548 | { key: 5, label: `状态`, visible: true }, | 548 | { key: 5, label: `状态`, visible: true }, |
| @@ -570,7 +570,7 @@ const data = reactive({ | @@ -570,7 +570,7 @@ const data = reactive({ | ||
| 570 | }, | 570 | }, |
| 571 | ], | 571 | ], |
| 572 | nickName: [ | 572 | nickName: [ |
| 573 | - { required: true, message: "用户昵称不能为空", trigger: "blur" }, | 573 | + { required: true, message: "用户姓名不能为空", trigger: "blur" }, |
| 574 | ], | 574 | ], |
| 575 | password: [ | 575 | password: [ |
| 576 | { required: true, message: "用户密码不能为空", trigger: "blur" }, | 576 | { required: true, message: "用户密码不能为空", trigger: "blur" }, |
| 1 | <template> | 1 | <template> |
| 2 | <el-form ref="userRef" :model="user" :rules="rules" label-width="80px"> | 2 | <el-form ref="userRef" :model="user" :rules="rules" label-width="80px"> |
| 3 | - <el-form-item label="用户昵称" prop="nickName"> | 3 | + <el-form-item label="用户姓名" prop="nickName"> |
| 4 | <el-input v-model="user.nickName" maxlength="30" /> | 4 | <el-input v-model="user.nickName" maxlength="30" /> |
| 5 | </el-form-item> | 5 | </el-form-item> |
| 6 | <el-form-item label="手机号码" prop="phonenumber"> | 6 | <el-form-item label="手机号码" prop="phonenumber"> |
| @@ -40,7 +40,7 @@ const props = defineProps({ | @@ -40,7 +40,7 @@ const props = defineProps({ | ||
| 40 | const { proxy } = getCurrentInstance(); | 40 | const { proxy } = getCurrentInstance(); |
| 41 | 41 | ||
| 42 | const rules = ref({ | 42 | const rules = ref({ |
| 43 | - nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }], | 43 | + nickName: [{ required: true, message: "用户姓名不能为空", trigger: "blur" }], |
| 44 | email: [ | 44 | email: [ |
| 45 | { required: true, message: "邮箱地址不能为空", trigger: "blur" }, | 45 | { required: true, message: "邮箱地址不能为空", trigger: "blur" }, |
| 46 | { | 46 | { |
-
请 注册 或 登录 后发表评论