audit.vue 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950
  1. <template>
  2. <PageMain class="vh100">
  3. <el-tabs class="demo-tabs h-full" v-model="activeName" @tab-click="handleClick">
  4. <el-tab-pane name="0" class="h-full">
  5. <template #label>
  6. <el-badge :value="total1">
  7. <span>待审核</span>
  8. </el-badge>
  9. </template>
  10. <el-form v-model="firstForm" label-width="100">
  11. <el-row :gutter="20">
  12. <el-col :span="8">
  13. <el-form-item label="保险公司">
  14. <el-select v-model="firstForm.companyId" placeholder="请选择" clearable filterable>
  15. <el-option v-for="item in companyList" :key="item.id" :value="item.id" :label="item.name"></el-option>
  16. </el-select>
  17. </el-form-item>
  18. </el-col>
  19. <el-col :span="8">
  20. <el-form-item label="保险机构">
  21. <el-cascader filterable clearable placeholder="请选择" v-model="firstForm.partnerCompanyId"
  22. style="width: 100%;" :options="companyoptionsList" :props="companyIdprops"
  23. @change="handleCompanyChange" />
  24. </el-form-item>
  25. </el-col>
  26. <el-col :span="8">
  27. <el-form-item label="车牌号">
  28. <el-input v-model="firstForm.licenseNo" placeholder="请输入" clearable></el-input>
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="8">
  32. <el-form-item label="业务员类型">
  33. <el-select v-model="firstForm.attrType" placeholder="请选择" clearable>
  34. <el-option label="团队" value="5"></el-option>
  35. <el-option label="个代" value="6"></el-option>
  36. <el-option label="渠道" value="7"></el-option>
  37. <el-option label="电销组" value="8"></el-option>
  38. </el-select>
  39. </el-form-item>
  40. </el-col>
  41. <el-col :span="8">
  42. <el-form-item label="业务员">
  43. <el-input v-model="firstForm.salesman" placeholder="请输入" clearable></el-input>
  44. </el-form-item>
  45. </el-col>
  46. <el-col :span="8">
  47. <el-form-item label="业务员手机号">
  48. <el-input v-model="firstForm.phone" placeholder="请输入" clearable></el-input>
  49. </el-form-item>
  50. </el-col>
  51. <el-col :span="8">
  52. <el-form-item label="订单类型">
  53. <el-select v-model="firstForm.orderType" placeholder="请选择" clearable>
  54. <el-option label="车险录入" value="1"></el-option>
  55. <el-option label="代客录单" value="2"></el-option>
  56. <el-option label="外部订单" value="3"></el-option>
  57. </el-select>
  58. </el-form-item>
  59. </el-col>
  60. <el-col :span="8">
  61. <el-form-item label="被保人">
  62. <el-input v-model="firstForm.insurName" placeholder="请输入" clearable></el-input>
  63. </el-form-item>
  64. </el-col>
  65. <el-col :span="8">
  66. <el-form-item label="签单时间">
  67. <el-date-picker v-model="firstForm.signingTime" type="daterange" range-separator="至"
  68. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  69. </el-form-item>
  70. </el-col>
  71. <el-col :span="8">
  72. <el-form-item label="支付时间">
  73. <el-date-picker v-model="firstForm.payingTime" type="daterange" range-separator="至"
  74. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  75. </el-form-item>
  76. </el-col>
  77. <el-col :span="8">
  78. <el-form-item label="报价时间">
  79. <el-date-picker v-model="firstForm.quotationTime" type="daterange" range-separator="至"
  80. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  81. </el-form-item>
  82. </el-col>
  83. <el-col v-show="isTrue" :span="8">
  84. <el-form-item label="投保险种">
  85. <el-select v-model="firstForm.productName" placeholder="请选择" clearable>
  86. <el-option label="全部" value=" "></el-option>
  87. <el-option v-for="item in riskType" :key="item.value" :value="item.label"
  88. :label="item.label"></el-option>
  89. </el-select>
  90. </el-form-item>
  91. </el-col>
  92. <el-col v-show="isTrue" :span="8">
  93. <el-form-item label="协议选择">
  94. <el-select v-model="firstForm.agreementId" placeholder="请选择协议" clearable filterable>
  95. <el-option v-for="item in agreementList" :key="item.id" :value="item.id"
  96. :label="item.agreementTitle"></el-option>
  97. </el-select>
  98. </el-form-item>
  99. </el-col>
  100. <el-col v-show="isTrue" :span="8">
  101. <el-form-item label="订单号">
  102. <el-input v-model="firstForm.orderNo" placeholder="请输入" clearable></el-input>
  103. </el-form-item>
  104. </el-col>
  105. <el-col v-show="isTrue" :span="8">
  106. <el-form-item label="对接人">
  107. <el-input v-model="firstForm.contact" placeholder="请输入" clearable></el-input>
  108. </el-form-item>
  109. </el-col>
  110. <el-col v-show="isTrue" :span="8">
  111. <el-form-item label="出单机构">
  112. <el-cascader clearable style="width: 100%" v-model="firstForm.deptId" :options="option"
  113. @change="handleChange" :props="tableProps"></el-cascader>
  114. </el-form-item>
  115. </el-col>
  116. <el-col :span="8">
  117. <el-form-item label="起保时间">
  118. <el-date-picker v-model="firstForm.riskStartDate" type="daterange" range-separator="至"
  119. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  120. </el-form-item>
  121. </el-col>
  122. <el-col v-show="isTrue" :span="8">
  123. <el-form-item label="交强保单号">
  124. <el-input v-model="firstForm.jqPolicyNo" placeholder="请输入" clearable></el-input>
  125. </el-form-item>
  126. </el-col>
  127. <el-col v-show="isTrue" :span="8">
  128. <el-form-item label="商业保单号">
  129. <el-input v-model="firstForm.syPolicyNo" placeholder="请输入" clearable></el-input>
  130. </el-form-item>
  131. </el-col>
  132. <el-col v-show="isTrue" :span="8">
  133. <el-form-item label="非车保单号">
  134. <el-input v-model="firstForm.jyPolicyNo" placeholder="请输入" clearable></el-input>
  135. </el-form-item>
  136. </el-col>
  137. <el-col :span="24" style="display: flex;align-items: flex-start; justify-content: flex-end">
  138. <el-button plain @click="handleExport('0')">数据导出</el-button>
  139. <el-button type="primary" @click="handleSearch">搜索</el-button>
  140. <el-button plain @click="handleReset">重置</el-button>
  141. <span class="icon_s">
  142. <span @click="isTrue = !isTrue">高级搜索</span>
  143. <el-icon class="is_icon" :class="{ 'is_down': isTrue }">
  144. <ArrowDown />
  145. </el-icon>
  146. </span>
  147. </el-col>
  148. </el-row>
  149. </el-form>
  150. <el-table :data="firstData" :height="isTrue ? 'calc(100% - 312px)' : 'calc(100% - 212px)'"
  151. style="width: 100%; margin-top: 20px;" highlight-current-row>
  152. <el-table-column prop="orderNo" label="订单号" width="120"></el-table-column>
  153. <el-table-column prop="attrType" label="业务员类型" width="120"></el-table-column>
  154. <el-table-column prop="mobile" label="业务员手机号" width="120"></el-table-column>
  155. <el-table-column prop="name" label="业务员" width="120"></el-table-column>
  156. <el-table-column prop="orderType" label="订单类型" width="120"></el-table-column>
  157. <el-table-column prop="agreementName" label="出单协议" width="120"></el-table-column>
  158. <el-table-column prop="companyALlName" label="保险公司" width="120"></el-table-column>
  159. <el-table-column prop="partnerCompanyId" label="保险机构" width="120"></el-table-column>
  160. <el-table-column prop="dockingPerson" label="对接人" width="120"></el-table-column>
  161. <el-table-column prop="licenseNo" label="车牌号" width="120"></el-table-column>
  162. <el-table-column prop="insurName" label="被保人" width="120"></el-table-column>
  163. <el-table-column prop="productName" label="投保险种" width="120"></el-table-column>
  164. <el-table-column prop="createBy" label="录入人" width="120"></el-table-column>
  165. <el-table-column prop="signingTime" label="签单时间" width="120"></el-table-column>
  166. <el-table-column prop="payTime" label="支付时间" width="120"></el-table-column>
  167. <el-table-column prop="quotationTime" label="报价时间" width="120"></el-table-column>
  168. <el-table-column prop="equityAmount" label="权益金额" width="120"></el-table-column>
  169. <el-table-column prop="deptName" label="出单机构" width="120"></el-table-column>
  170. <el-table-column label="操作" fixed="right" width="200">
  171. <template #default="scope">
  172. <el-button link type="primary" size="small" @click="handleToDetail(scope, 1, '0')">审核</el-button>
  173. <el-button link type="primary" size="small" @click="openQuestionOrderDialog(scope.row)">设置疑问订单</el-button>
  174. </template>
  175. </el-table-column>
  176. </el-table>
  177. <div class="pagination">
  178. <el-pagination v-model:current-page="pages" v-model:page-size="size" :page-sizes="[10, 20, 30, 40]"
  179. layout="total, sizes, prev, pager, next, jumper" :total="total1" @size-change="handleSizeChange"
  180. @current-change="handleCurrentChange"></el-pagination>
  181. </div>
  182. </el-tab-pane>
  183. <el-tab-pane name="1" class="h-full">
  184. <template #label>
  185. <el-badge :value="total2">
  186. <span>审核通过</span>
  187. </el-badge>
  188. </template>
  189. <el-form v-model="firstForm" label-width="100">
  190. <el-row :gutter="20">
  191. <el-col :span="8">
  192. <el-form-item label="车牌号">
  193. <el-input v-model="firstForm.licenseNo" placeholder="请输入" clearable></el-input>
  194. </el-form-item>
  195. </el-col>
  196. <el-col :span="8">
  197. <el-form-item label="车架号">
  198. <el-input v-model="firstForm.vinNo" placeholder="请输入" clearable></el-input>
  199. </el-form-item>
  200. </el-col>
  201. <el-col :span="8">
  202. <el-form-item label="业务员类型">
  203. <el-select v-model="firstForm.attrType" placeholder="请选择" clearable>
  204. <el-option label="团队" value="5"></el-option>
  205. <el-option label="个代" value="6"></el-option>
  206. <el-option label="渠道" value="7"></el-option>
  207. <el-option label="电销组" value="8"></el-option>
  208. </el-select>
  209. </el-form-item>
  210. </el-col>
  211. <el-col :span="8">
  212. <el-form-item label="业务员">
  213. <el-input v-model="firstForm.salesman" placeholder="请输入" clearable></el-input>
  214. </el-form-item>
  215. </el-col>
  216. <el-col :span="8">
  217. <el-form-item label="订单类型">
  218. <el-select v-model="firstForm.orderType" placeholder="请选择" clearable>
  219. <el-option label="车险录入" value="1"></el-option>
  220. <el-option label="代客录单" value="2"></el-option>
  221. <el-option label="外部订单" value="3"></el-option>
  222. </el-select>
  223. </el-form-item>
  224. </el-col>
  225. <el-col :span="8">
  226. <el-form-item label="保险公司">
  227. <el-select v-model="firstForm.companyId" placeholder="请选择" clearable filterable>
  228. <el-option v-for="item in companyList" :key="item.id" :value="item.id" :label="item.name"></el-option>
  229. </el-select>
  230. </el-form-item>
  231. </el-col>
  232. <el-col :span="8">
  233. <el-form-item label="险种">
  234. <el-select v-model="firstForm.productName" placeholder="请选择" clearable>
  235. <el-option label="全部" value=" "></el-option>
  236. <el-option v-for="item in riskType" :key="item.value" :value="item.label"
  237. :label="item.label"></el-option>
  238. </el-select>
  239. </el-form-item>
  240. </el-col>
  241. <el-col :span="8">
  242. <el-form-item label="出单机构">
  243. <el-cascader clearable style="width: 100%" v-model="firstForm.deptId" :options="option"
  244. @change="handleChange" :props="tableProps"></el-cascader>
  245. </el-form-item>
  246. </el-col>
  247. <el-col :span="8">
  248. <el-form-item label="协议选择">
  249. <el-select v-model="firstForm.agreementId" placeholder="请选择协议" clearable filterable>
  250. <el-option v-for="item in agreementList" :key="item.id" :value="item.id"
  251. :label="item.agreementTitle"></el-option>
  252. </el-select>
  253. </el-form-item>
  254. </el-col>
  255. <el-col :span="8">
  256. <el-form-item label="被保人">
  257. <el-input v-model="firstForm.insurName" placeholder="请输入" clearable></el-input>
  258. </el-form-item>
  259. </el-col>
  260. <el-col :span="8">
  261. <el-form-item label="报价时间">
  262. <el-date-picker v-model="firstForm.quotationTime" type="daterange" range-separator="至"
  263. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  264. </el-form-item>
  265. </el-col>
  266. <el-col :span="8">
  267. <el-form-item label="签单时间">
  268. <el-date-picker v-model="firstForm.signingTime" type="daterange" range-separator="至"
  269. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  270. </el-form-item>
  271. </el-col>
  272. <el-col :span="24" style="display: flex;align-items: flex-start; justify-content: flex-end">
  273. <el-button plain @click="handleExport('1')">数据导出</el-button>
  274. <el-button type="primary" @click="handleSearch">搜索</el-button>
  275. <el-button plain @click="handleReset">重置</el-button>
  276. <span class="icon_s">
  277. <span @click="isTrue = !isTrue">高级搜索</span>
  278. <el-icon class="is_icon" :class="{ 'is_down': isTrue }">
  279. <ArrowDown />
  280. </el-icon>
  281. </span>
  282. </el-col>
  283. </el-row>
  284. </el-form>
  285. <el-table :data="secondData" height="calc(100% - 294px )" style="width: 100%; margin-top: 20px;"
  286. highlight-current-row>
  287. <el-table-column prop="orderNo" label="订单号" width="120"></el-table-column>
  288. <el-table-column prop="companyName" label="保险公司" width="120"></el-table-column>
  289. <el-table-column prop="licenseNo" label="车牌号" width="120"></el-table-column>
  290. <el-table-column prop="vinNo" label="车架号" width="120"></el-table-column>
  291. <el-table-column prop="insurName" label="被保人" width="120"></el-table-column>
  292. <el-table-column prop="orderType" label="订单类型" width="120"></el-table-column>
  293. <el-table-column prop="name" label="业务员信息" width="120"></el-table-column>
  294. <el-table-column prop="attrType" label="业务员类型" width="120"></el-table-column>
  295. <el-table-column prop="signingTime" label="签单时间" width="120"></el-table-column>
  296. <el-table-column prop="quotationTime" label="报价时间" width="120"></el-table-column>
  297. <el-table-column prop="dockingPerson" label="对接人" width="120"></el-table-column>
  298. <el-table-column prop="agreementName" label="出单协议" width="120"></el-table-column>
  299. <el-table-column prop="productName" label="险种" width="120"></el-table-column>
  300. <el-table-column prop="sumPremium" label="保费总计" width="120"></el-table-column>
  301. <el-table-column prop="equityAmount" label="权益金额" width="120"></el-table-column>
  302. <el-table-column prop="deptName" label="出单机构" width="120"></el-table-column>
  303. <el-table-column prop="createTime" label="录单时间" width="120"></el-table-column>
  304. <el-table-column prop="createBy" label="录单人" width="120"></el-table-column>
  305. <el-table-column prop="payTime" label="支付时间" width="120"></el-table-column>
  306. <el-table-column prop="jqPremium" label="交强险" width="120"></el-table-column>
  307. <el-table-column prop="syPremium" label="商业险" width="120"></el-table-column>
  308. <el-table-column prop="jyPremium" label="驾意险" width="120"></el-table-column>
  309. <el-table-column prop="auditUser" label="审核人" width="120"></el-table-column>
  310. <el-table-column prop="auditTime" label="审核时间" width="120"></el-table-column>
  311. <el-table-column label="操作" fixed="right" width="200">
  312. <template #default="scope">
  313. <el-button link type="primary" size="small" @click="handleToDetail(scope, 0, '1')">详情</el-button>
  314. </template>
  315. </el-table-column>
  316. </el-table>
  317. <div class="pagination">
  318. <el-pagination v-model:current-page="pages" v-model:page-size="size" :page-sizes="[10, 20, 30, 40]"
  319. layout="total, sizes, prev, pager, next, jumper" :total="total2" @size-change="handleSizeChange"
  320. @current-change="handleCurrentChange"></el-pagination>
  321. </div>
  322. </el-tab-pane>
  323. <el-tab-pane name="2" class="h-full">
  324. <template #label>
  325. <el-badge :value="total3">
  326. <span>审核不通过</span>
  327. </el-badge>
  328. </template>
  329. <el-form v-model="firstForm" label-width="100">
  330. <el-row :gutter="20">
  331. <el-col :span="8">
  332. <el-form-item label="车牌号">
  333. <el-input v-model="firstForm.licenseNo" placeholder="请输入" clearable></el-input>
  334. </el-form-item>
  335. </el-col>
  336. <el-col :span="8">
  337. <el-form-item label="车架号">
  338. <el-input v-model="firstForm.vinNo" placeholder="请输入" clearable></el-input>
  339. </el-form-item>
  340. </el-col>
  341. <el-col :span="8">
  342. <el-form-item label="业务员类型">
  343. <el-select v-model="firstForm.attrType" placeholder="请选择" clearable>
  344. <el-option label="团队" value="5"></el-option>
  345. <el-option label="个代" value="6"></el-option>
  346. <el-option label="渠道" value="7"></el-option>
  347. <el-option label="电销组" value="8"></el-option>
  348. </el-select>
  349. </el-form-item>
  350. </el-col>
  351. <el-col :span="8">
  352. <el-form-item label="业务员">
  353. <el-input v-model="firstForm.salesman" placeholder="请输入" clearable></el-input>
  354. </el-form-item>
  355. </el-col>
  356. <el-col :span="8">
  357. <el-form-item label="订单类型">
  358. <el-select v-model="firstForm.orderType" placeholder="请选择" clearable>
  359. <el-option label="车险录入" value="1"></el-option>
  360. <el-option label="代客录单" value="2"></el-option>
  361. <el-option label="外部订单" value="3"></el-option>
  362. </el-select>
  363. </el-form-item>
  364. </el-col>
  365. <el-col :span="8">
  366. <el-form-item label="保险公司">
  367. <el-select v-model="firstForm.companyId" placeholder="请选择" clearable filterable>
  368. <el-option v-for="item in companyList" :key="item.id" :value="item.id" :label="item.name"></el-option>
  369. </el-select>
  370. </el-form-item>
  371. </el-col>
  372. <el-col :span="8">
  373. <el-form-item label="险种">
  374. <el-select v-model="firstForm.productName" placeholder="请选择" clearable>
  375. <el-option label="全部" value=" "></el-option>
  376. <el-option v-for="item in riskType" :key="item.value" :value="item.label"
  377. :label="item.label"></el-option>
  378. </el-select>
  379. </el-form-item>
  380. </el-col>
  381. <el-col :span="8">
  382. <el-form-item label="出单机构">
  383. <el-cascader clearable style="width: 100%" v-model="firstForm.deptId" :options="option"
  384. @change="handleChange" :props="tableProps"></el-cascader>
  385. </el-form-item>
  386. </el-col>
  387. <el-col :span="8">
  388. <el-form-item label="协议选择">
  389. <el-select v-model="firstForm.agreementId" placeholder="请选择协议" clearable filterable>
  390. <el-option v-for="item in agreementList" :key="item.id" :value="item.id"
  391. :label="item.agreementTitle"></el-option>
  392. </el-select>
  393. </el-form-item>
  394. </el-col>
  395. <el-col :span="8">
  396. <el-form-item label="被保人">
  397. <el-input v-model="firstForm.insurName" placeholder="请输入" clearable></el-input>
  398. </el-form-item>
  399. </el-col>
  400. <el-col :span="8">
  401. <el-form-item label="报价时间">
  402. <el-date-picker v-model="firstForm.quotationTime" type="daterange" range-separator="至"
  403. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  404. </el-form-item>
  405. </el-col>
  406. <el-col :span="8">
  407. <el-form-item label="签单时间">
  408. <el-date-picker v-model="firstForm.signingTime" type="daterange" range-separator="至"
  409. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  410. </el-form-item>
  411. </el-col>
  412. <el-col :span="24" style="display: flex;align-items: flex-start; justify-content: flex-end">
  413. <el-button plain @click="handleExport('2')">数据导出</el-button>
  414. <el-button type="primary" @click="handleSearch">搜索</el-button>
  415. <el-button plain @click="handleReset">重置</el-button>
  416. <span class="icon_s">
  417. <span @click="isTrue = !isTrue">高级搜索</span>
  418. <el-icon class="is_icon" :class="{ 'is_down': isTrue }">
  419. <ArrowDown />
  420. </el-icon>
  421. </span>
  422. </el-col>
  423. </el-row>
  424. </el-form>
  425. <el-table :data="thirdData" height="calc(100% - 294px )" style="width: 100%; margin-top: 20px;"
  426. highlight-current-row>
  427. <el-table-column prop="orderNo" label="订单号" width="120"></el-table-column>
  428. <el-table-column prop="companyName" label="保险公司" width="120"></el-table-column>
  429. <el-table-column prop="licenseNo" label="车牌号" width="120"></el-table-column>
  430. <el-table-column prop="vinNo" label="车架号" width="120"></el-table-column>
  431. <el-table-column prop="insurName" label="被保人" width="120"></el-table-column>
  432. <el-table-column prop="orderType" label="订单类型" width="120"></el-table-column>
  433. <el-table-column prop="name" label="业务员信息" width="120"></el-table-column>
  434. <el-table-column prop="attrType" label="业务员类型" width="120"></el-table-column>
  435. <el-table-column prop="signingTime" label="签单时间" width="120"></el-table-column>
  436. <el-table-column prop="quotationTime" label="报价时间" width="120"></el-table-column>
  437. <el-table-column prop="auditUser" label="驳回人" width="120"></el-table-column>
  438. <el-table-column prop="auditTime" label="驳回时间" width="120"></el-table-column>
  439. <el-table-column prop="refuse" label="驳回原因" width="120"></el-table-column>
  440. <el-table-column prop="dockingPerson" label="对接人" width="120"></el-table-column>
  441. <el-table-column prop="agreementName" label="出单协议" width="120"></el-table-column>
  442. <el-table-column prop="productName" label="险种" width="120"></el-table-column>
  443. <el-table-column prop="sumPremium" label="保费总计" width="120"></el-table-column>
  444. <el-table-column prop="equityAmount" label="权益金额" width="120"></el-table-column>
  445. <el-table-column prop="deptName" label="出单机构" width="120"></el-table-column>
  446. <el-table-column prop="createTime" label="录单时间" width="120"></el-table-column>
  447. <el-table-column prop="createBy" label="录单人" width="120"></el-table-column>
  448. <el-table-column prop="payTime" label="支付时间" width="120"></el-table-column>
  449. <el-table-column prop="jqPremium" label="交强险" width="120"></el-table-column>
  450. <el-table-column prop="syPremium" label="商业险" width="120"></el-table-column>
  451. <el-table-column prop="jyPremium" label="驾意险" width="120"></el-table-column>
  452. <el-table-column prop="auditUser" label="审核人" width="120"></el-table-column>
  453. <el-table-column prop="auditTime" label="审核时间" width="120"></el-table-column>
  454. <el-table-column prop="refuse" label="驳回原因" width="120"></el-table-column>
  455. <el-table-column label="操作" fixed="right" width="200">
  456. <template #default="scope">
  457. <el-button link type="primary" size="small" @click="handleToDetail(scope, 0, '2')">详情</el-button>
  458. </template>
  459. </el-table-column>
  460. </el-table>
  461. <div class="pagination">
  462. <el-pagination v-model:current-page="pages" v-model:page-size="size" :page-sizes="[10, 20, 30, 40]"
  463. layout="total, sizes, prev, pager, next, jumper" :total="total3" @size-change="handleSizeChange"
  464. @current-change="handleCurrentChange"></el-pagination>
  465. </div>
  466. </el-tab-pane>
  467. <el-tab-pane name="3" class="h-full">
  468. <template #label>
  469. <el-badge :value="total4">
  470. <span>疑问订单</span>
  471. </el-badge>
  472. </template>
  473. <el-form v-model="firstForm" label-width="100">
  474. <el-row :gutter="20">
  475. <el-col :span="8">
  476. <el-form-item label="车牌号">
  477. <el-input v-model="firstForm.licenseNo" placeholder="请输入" clearable></el-input>
  478. </el-form-item>
  479. </el-col>
  480. <el-col :span="8">
  481. <el-form-item label="车架号">
  482. <el-input v-model="firstForm.vinNo" placeholder="请输入" clearable></el-input>
  483. </el-form-item>
  484. </el-col>
  485. <el-col :span="8">
  486. <el-form-item label="业务员类型">
  487. <el-select v-model="firstForm.attrType" placeholder="请选择" clearable>
  488. <el-option label="团队" value="5"></el-option>
  489. <el-option label="个代" value="6"></el-option>
  490. <el-option label="渠道" value="7"></el-option>
  491. <el-option label="电销组" value="8"></el-option>
  492. </el-select>
  493. </el-form-item>
  494. </el-col>
  495. <el-col :span="8">
  496. <el-form-item label="业务员">
  497. <el-input v-model="firstForm.salesman" placeholder="请输入" clearable></el-input>
  498. </el-form-item>
  499. </el-col>
  500. <el-col :span="8">
  501. <el-form-item label="订单类型">
  502. <el-select v-model="firstForm.orderType" placeholder="请选择" clearable>
  503. <el-option label="车险录入" value="1"></el-option>
  504. <el-option label="代客录单" value="2"></el-option>
  505. <el-option label="外部订单" value="3"></el-option>
  506. </el-select>
  507. </el-form-item>
  508. </el-col>
  509. <el-col :span="8">
  510. <el-form-item label="保险公司">
  511. <el-select v-model="firstForm.companyId" placeholder="请选择" clearable filterable>
  512. <el-option v-for="item in companyList" :key="item.id" :value="item.id" :label="item.name"></el-option>
  513. </el-select>
  514. </el-form-item>
  515. </el-col>
  516. <el-col :span="8">
  517. <el-form-item label="险种">
  518. <el-select v-model="firstForm.productName" placeholder="请选择" clearable>
  519. <el-option label="全部" value=" "></el-option>
  520. <el-option v-for="item in riskType" :key="item.value" :value="item.label"
  521. :label="item.label"></el-option>
  522. </el-select>
  523. </el-form-item>
  524. </el-col>
  525. <el-col :span="8">
  526. <el-form-item label="出单机构">
  527. <el-cascader clearable style="width: 100%" v-model="firstForm.deptId" :options="option"
  528. @change="handleChange" :props="tableProps"></el-cascader>
  529. </el-form-item>
  530. </el-col>
  531. <el-col :span="8">
  532. <el-form-item label="协议选择">
  533. <el-select v-model="firstForm.agreementId" placeholder="请选择协议" clearable filterable>
  534. <el-option v-for="item in agreementList" :key="item.id" :value="item.id"
  535. :label="item.agreementTitle"></el-option>
  536. </el-select>
  537. </el-form-item>
  538. </el-col>
  539. <el-col :span="8">
  540. <el-form-item label="被保人">
  541. <el-input v-model="firstForm.insurName" placeholder="请输入" clearable></el-input>
  542. </el-form-item>
  543. </el-col>
  544. <el-col :span="8">
  545. <el-form-item label="报价时间">
  546. <el-date-picker v-model="firstForm.quotationTime" type="daterange" range-separator="至"
  547. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  548. </el-form-item>
  549. </el-col>
  550. <el-col :span="8">
  551. <el-form-item label="签单时间">
  552. <el-date-picker v-model="firstForm.signingTime" type="daterange" range-separator="至"
  553. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  554. </el-form-item>
  555. </el-col>
  556. <el-col :span="24" style="display: flex;align-items: flex-start; justify-content: flex-end">
  557. <el-button plain @click="handleExport('3')">数据导出</el-button>
  558. <el-button type="primary" @click="handleSearch">搜索</el-button>
  559. <el-button plain @click="handleReset">重置</el-button>
  560. <span class="icon_s">
  561. <span @click="isTrue = !isTrue">高级搜索</span>
  562. <el-icon class="is_icon" :class="{ 'is_down': isTrue }">
  563. <ArrowDown />
  564. </el-icon>
  565. </span>
  566. </el-col>
  567. </el-row>
  568. </el-form>
  569. <el-table :data="forthData" height="calc(100% - 294px )" style="width: 100%; margin-top: 20px;"
  570. highlight-current-row>
  571. <el-table-column prop="orderNo" label="订单号" width="120"></el-table-column>
  572. <el-table-column prop="companyName" label="保险公司" width="120"></el-table-column>
  573. <el-table-column prop="licenseNo" label="车牌号" width="120"></el-table-column>
  574. <el-table-column prop="vinNo" label="车架号" width="120"></el-table-column>
  575. <el-table-column prop="insurName" label="被保人" width="120"></el-table-column>
  576. <el-table-column prop="problemReason" label="疑问原因" width="120"></el-table-column>
  577. <el-table-column prop="problemTime" label="疑问订单时间" width="120"></el-table-column>
  578. <el-table-column prop="orderType" label="订单类型" width="120"></el-table-column>
  579. <el-table-column prop="name" label="业务员信息" width="120"></el-table-column>
  580. <el-table-column prop="attrType" label="业务员类型" width="120"></el-table-column>
  581. <el-table-column prop="signingTime" label="签单时间" width="120"></el-table-column>
  582. <el-table-column prop="quotationTime" label="报价时间" width="120"></el-table-column>
  583. <el-table-column prop="dockingPerson" label="对接人" width="120"></el-table-column>
  584. <el-table-column prop="agreementName" label="出单协议" width="120"></el-table-column>
  585. <el-table-column prop="productName" label="险种" width="120"></el-table-column>
  586. <el-table-column prop="sumPremium" label="保费总计" width="120"></el-table-column>
  587. <el-table-column prop="equityAmount" label="权益金额" width="120"></el-table-column>
  588. <el-table-column prop="deptName" label="出单机构" width="120"></el-table-column>
  589. <el-table-column prop="createTime" label="录单时间" width="120"></el-table-column>
  590. <el-table-column prop="createBy" label="录单人" width="120"></el-table-column>
  591. <el-table-column prop="payTime" label="支付时间" width="120"></el-table-column>
  592. <el-table-column prop="jqPremium" label="交强险" width="120"></el-table-column>
  593. <el-table-column prop="syPremium" label="商业险" width="120"></el-table-column>
  594. <el-table-column prop="jyPremium" label="驾意险" width="120"></el-table-column>
  595. <el-table-column label="操作" fixed="right" width="200">
  596. <template #default="scope">
  597. <el-button link type="primary" size="small" @click="handleToDetail(scope, 0, '3')">详情</el-button>
  598. <el-button link type="primary" size="small" @click="handleCancel(scope)">取消疑问订单</el-button>
  599. </template>
  600. </el-table-column>
  601. </el-table>
  602. <div class="pagination">
  603. <el-pagination v-model:current-page="pages" v-model:page-size="size" :page-sizes="[10, 20, 30, 40]"
  604. layout="total, sizes, prev, pager, next, jumper" :total="total3" @size-change="handleSizeChange"
  605. @current-change="handleCurrentChange"></el-pagination>
  606. </div>
  607. </el-tab-pane>
  608. </el-tabs>
  609. </PageMain>
  610. <el-dialog :close-on-click-modal="false" v-model="questionOrderDialog" title="设为疑问订单" width="600">
  611. <el-form>
  612. <el-form-item label="疑问原因">
  613. <el-input type="textarea" v-model="questionOrderValue" placeholder="输入疑问原因"></el-input>
  614. </el-form-item>
  615. </el-form>
  616. <template #footer>
  617. <el-button size="small" type="primary" @click="handleUpdateToQuestionOrder">确定</el-button>
  618. </template>
  619. </el-dialog>
  620. </template>
  621. <script setup lang="ts">
  622. import api from '@/api'
  623. import { ElMessage } from "element-plus";
  624. import { useRouter, useRoute } from 'vue-router'
  625. const myRouter = useRouter()
  626. const myRoute = useRoute()
  627. let activeName = ref(myRoute.query.activeindex as any || '0')
  628. const handleClick = (e) => {
  629. activeName.value = e.props.name
  630. pages.value = 1
  631. size.value = 10
  632. firstForm.value = {}
  633. initList(activeName.value)
  634. }
  635. let companyList = ref([])
  636. let companyoptionsList = ref([])
  637. const companyIdprops = {
  638. expandTrigger: 'hover' as const,
  639. value: 'id',
  640. label: 'name',
  641. checkStrictly: true,
  642. }
  643. const initCompany = () => {
  644. api.insuranceApi.leftList('').then((res: any) => {
  645. if (res.code == 200) {
  646. companyList.value = res.data
  647. }
  648. })
  649. }
  650. const initCompanyOptions = () => {
  651. api.agreementApi.findTree({ name: "", systemCode: localStorage.getItem('login_system') }).then((res: any) => {
  652. if (res.code == 200) {
  653. companyoptionsList.value = res.data
  654. }
  655. })
  656. }
  657. // 待审核
  658. let firstForm = ref({})
  659. let option = ref([])
  660. const tableProps = ref({
  661. value: "id",
  662. label: "name",
  663. children: "children",
  664. checkStrictly: true,
  665. });
  666. const institutionList = () => {
  667. api.institutionApi.institutionList({ name: '', system: '' }).then((res: any) => {
  668. if (res.code == 200) {
  669. option.value = res.data
  670. } else {
  671. ElMessage({
  672. message: res.msg,
  673. type: 'warning'
  674. })
  675. }
  676. })
  677. }
  678. const handleSearch = () => {
  679. initList(activeName.value)
  680. }
  681. const handleReset = () => {
  682. firstForm.value = {}
  683. initList(activeName.value)
  684. }
  685. let firstData = ref([])
  686. let secondData = ref([])
  687. let thirdData = ref([])
  688. let forthData = ref([])
  689. let total1 = ref(0)
  690. let total2 = ref(0)
  691. let total3 = ref(0)
  692. let total4 = ref(0)
  693. let pages = ref(1)
  694. let size = ref(10)
  695. const handleSizeChange = (size) => {
  696. size.value = size
  697. initList(activeName.value)
  698. }
  699. const handleCurrentChange = (page) => {
  700. pages.value = page
  701. initList(activeName.value)
  702. }
  703. const initList = (type) => {
  704. let obj = null
  705. if (type == '0' || type == '1' || type == '2') {
  706. obj = {
  707. pages: pages.value,
  708. size: size.value,
  709. receiveUser: localStorage.getItem('userName'),
  710. ...firstForm.value,
  711. quotationTimeStart: firstForm.value?.quotationTime?.[0],
  712. quotationTimeEnd: firstForm.value?.quotationTime?.[1],
  713. signingTimeStart: firstForm.value?.signingTime?.[0],
  714. signingTimeEnd: firstForm.value?.signingTime?.[1],
  715. payingTimeBegin: firstForm.value?.payingTime?.[0],
  716. payingTimeEnd: firstForm.value?.payingTime?.[1],
  717. riskStartDateBegin: firstForm.value?.riskStartDate?.[0],
  718. riskStartDateEnd: firstForm.value?.riskStartDate?.[1],
  719. auditStatus: type,
  720. isProblem: 0
  721. }
  722. } else {
  723. obj = {
  724. pages: pages.value,
  725. size: size.value,
  726. receiveUser: localStorage.getItem('userName'),
  727. ...firstForm.value,
  728. quotationTimeStart: firstForm.value?.quotationTime?.[0],
  729. quotationTimeEnd: firstForm.value?.quotationTime?.[1],
  730. signingTimeStart: firstForm.value?.signingTime?.[0],
  731. signingTimeEnd: firstForm.value?.signingTime?.[1],
  732. payingTimeBegin: firstForm.value?.payingTime?.[0],
  733. payingTimeEnd: firstForm.value?.payingTime?.[1],
  734. riskStartDateBegin: firstForm.value?.riskStartDate?.[0],
  735. riskStartDateEnd: firstForm.value?.riskStartDate?.[1],
  736. isProblem: 1
  737. }
  738. }
  739. api.financeApi.auditList(obj).then((res: any) => {
  740. if (res.code == 200) {
  741. switch (type) {
  742. case '0':
  743. firstData.value = res.data.records
  744. total1.value = res.data.total
  745. break;
  746. case '1':
  747. secondData.value = res.data.records
  748. total2.value = res.data.total
  749. break;
  750. case '2':
  751. thirdData.value = res.data.records
  752. total3.value = res.data.total
  753. break;
  754. case '3':
  755. forthData.value = res.data.records
  756. total4.value = res.data.total
  757. break;
  758. }
  759. }
  760. })
  761. }
  762. const handleToDetail = (scope, bool, index) => {
  763. myRouter.push({
  764. path: '/finance/auditOrderDetail',
  765. query: {
  766. id: scope.row.orderNo,
  767. isShow: bool,
  768. activeindex: index
  769. }
  770. })
  771. }
  772. const handleChange = (val) => {
  773. firstForm.value.deptId = val[val.length - 1]
  774. }
  775. const handleCompanyChange = (e: any) => {
  776. firstForm.value.partnerCompanyId = e?.[e.length - 1] || ''
  777. }
  778. const handleCancel = (scope) => {
  779. api.financeApi.updateToUnQuestionOrder(scope.row.orderNo).then((res: any) => {
  780. if (res.code == 200) {
  781. ElMessage({
  782. message: res.msg,
  783. type: 'warning'
  784. })
  785. initList('3')
  786. initList('0')
  787. } else {
  788. ElMessage({
  789. message: res.msg,
  790. type: 'warning'
  791. })
  792. }
  793. })
  794. }
  795. const questionOrderDialog = ref(false)
  796. const questionOrderValue = ref('')
  797. const questionOrderRow = ref({})
  798. const openQuestionOrderDialog = (row) => {
  799. questionOrderValue.value = ''
  800. questionOrderRow.value = row
  801. questionOrderDialog.value = true
  802. }
  803. // 设为疑问订单
  804. const handleUpdateToQuestionOrder = () => {
  805. const params = {
  806. problemReason: questionOrderValue.value,
  807. orderNo: questionOrderRow.value.orderNo
  808. }
  809. api.financeApi.updateToQuestionOrder(params).then((res: any) => {
  810. if (res.code == 200) {
  811. questionOrderDialog.value = false
  812. ElMessage({
  813. message: res.msg,
  814. type: 'success'
  815. })
  816. initList('0');
  817. initList('3')
  818. } else {
  819. ElMessage({
  820. message: res.msg,
  821. type: 'warning'
  822. })
  823. }
  824. })
  825. }
  826. // 数据导出// 数据导出
  827. const handleExport = (type: any) => {
  828. let obj = null;
  829. obj = {
  830. pages: pages.value,
  831. size: size.value,
  832. receiveUser: localStorage.getItem('userName'),
  833. ...firstForm.value,
  834. quotationTimeStart: firstForm.value?.quotationTime?.[0],
  835. quotationTimeEnd: firstForm.value?.quotationTime?.[1],
  836. signingTimeStart: firstForm.value?.signingTime?.[0],
  837. signingTimeEnd: firstForm.value?.signingTime?.[1],
  838. payingTimeStart: firstForm.value?.payingTime?.[0],
  839. payingTimeEnd: firstForm.value?.payingTime?.[1],
  840. isProblem: type == '3' ? 1 : 0
  841. }
  842. if (type !== '3') {
  843. obj.auditStatus = type
  844. }
  845. api.financeApi.exportOrderExcel(obj).then((res: any) => {
  846. if (res.code == 200) {
  847. const link = document.createElement('a');
  848. link.href = res.msg;
  849. link.download = '';
  850. // 触发下载
  851. document.body.appendChild(link);
  852. link.click();
  853. document.body.removeChild(link);
  854. }
  855. })
  856. }
  857. const riskType = ref([])
  858. const dictRisk = () => {
  859. api.additionalApi.dictDetails('report_risk_code').then((res: any) => {
  860. if (res.code == 200) {
  861. riskType.value = res.data.filter(v => v.value !== '0')
  862. }
  863. })
  864. }
  865. // 获取协议列表
  866. const agreementList = ref()
  867. const getagreementList = () => {
  868. api.agreementApi.agreementList({
  869. isExternal: '0',
  870. pages: 1,
  871. size: 1000,
  872. }).then((res: any) => {
  873. if (res.code == 200) {
  874. agreementList.value = res.data.records
  875. }
  876. })
  877. }
  878. onMounted(() => {
  879. dictRisk();
  880. initList('0');
  881. initList('1');
  882. initList('2');
  883. initList('3');
  884. initCompany();
  885. initCompanyOptions();
  886. institutionList();
  887. getagreementList();
  888. })
  889. // 是否高级搜索
  890. let isTrue = ref(false)
  891. </script>
  892. <style scoped lang="scss">
  893. .icon_s {
  894. display: flex;
  895. align-items: center;
  896. justify-content: flex-end;
  897. margin-left: 20px;
  898. color: #00a0f4;
  899. cursor: pointer;
  900. .is_icon {
  901. transition: ease 0.2s;
  902. }
  903. .is_down {
  904. transform: rotate(180deg);
  905. }
  906. }
  907. .pagination {
  908. margin-top: 10px;
  909. display: flex;
  910. justify-content: flex-end;
  911. }
  912. :deep(.el-badge__content.is-fixed) {
  913. right: calc(var(--el-badge-size) / 2 - 10px);
  914. top: 50%;
  915. }
  916. :deep(.el-badge__content--danger) {
  917. background-color: #D40000;
  918. }
  919. /* 自定义表格点击高亮颜色 */
  920. :deep(.el-table__body tr.current-row > td) {
  921. background-color: #c1e8fa !important;
  922. }
  923. :deep(.el-table__body tr.current-row:hover > td) {
  924. background-color: #b4ddf8 !important;
  925. }
  926. </style>