index.vue 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109
  1. <template>
  2. <PageMain class="vh100">
  3. <el-tabs v-model="activeName" class="demo-tabs h-full" @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="120" ref="formRef0">
  11. <el-row :gutter="20">
  12. <el-col :span="6">
  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="6">
  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="6">
  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="6">
  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="6">
  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="6">
  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="6">
  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="6">
  61. <el-form-item label="投保人">
  62. <el-input v-model="firstForm.policyholder" placeholder="请输入" clearable></el-input>
  63. </el-form-item>
  64. </el-col>
  65. <el-col :span="6">
  66. <el-form-item label="被保人">
  67. <el-input v-model="firstForm.insurName" placeholder="请输入" clearable></el-input>
  68. </el-form-item>
  69. </el-col>
  70. <el-col :span="6">
  71. <el-form-item label="签单时间 ">
  72. <el-date-picker v-model="firstForm.signingTime" type="daterange" range-separator="至"
  73. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  74. </el-form-item>
  75. </el-col>
  76. <el-col :span="6">
  77. <el-form-item label="支付时间">
  78. <el-date-picker v-model="firstForm.payingTime" type="daterange" range-separator="至"
  79. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  80. </el-form-item>
  81. </el-col>
  82. <el-col :span="6">
  83. <el-form-item label="报价时间">
  84. <el-date-picker v-model="firstForm.quotationTime" type="daterange" range-separator="至"
  85. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  86. </el-form-item>
  87. </el-col>
  88. <el-col v-show="isTrue" :span="6">
  89. <el-form-item label="投保险种">
  90. <el-select v-model="firstForm.productName" placeholder="请选择" clearable>
  91. <el-option label="全部" value=" "></el-option>
  92. <el-option v-for="item in riskType" :key="item.value" :value="item.label"
  93. :label="item.label"></el-option>
  94. </el-select>
  95. </el-form-item>
  96. </el-col>
  97. <el-col v-show="isTrue" :span="6">
  98. <el-form-item label="协议选择">
  99. <el-select v-model="firstForm.agreementId" placeholder="请选择协议" clearable filterable>
  100. <el-option v-for="item in agreementList" :key="item.id" :value="item.id"
  101. :label="item.agreementTitle"></el-option>
  102. </el-select>
  103. </el-form-item>
  104. </el-col>
  105. <el-col v-show="isTrue" :span="6">
  106. <el-form-item label="订单号">
  107. <el-input v-model="firstForm.orderNo" placeholder="请输入" clearable></el-input>
  108. </el-form-item>
  109. </el-col>
  110. <el-col v-show="isTrue" :span="6">
  111. <el-form-item label="对接人">
  112. <el-input v-model="firstForm.contact" placeholder="请输入" clearable></el-input>
  113. </el-form-item>
  114. </el-col>
  115. <el-col v-show="isTrue" :span="6">
  116. <el-form-item label="出单机构">
  117. <el-cascader clearable style="width: 100%" v-model="firstForm.deptId" :options="option"
  118. @change="handleChange" :props="tableProps"></el-cascader>
  119. </el-form-item>
  120. </el-col>
  121. <el-col v-show="isTrue" :span="6">
  122. <el-form-item label="交强险起保时间">
  123. <el-date-picker v-model="firstForm.jqRiskStartDate" type="daterange" range-separator="至"
  124. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  125. </el-form-item>
  126. </el-col>
  127. <el-col v-show="isTrue" :span="6">
  128. <el-form-item label="商业险起保时间">
  129. <el-date-picker v-model="firstForm.syRiskStartDate" type="daterange" range-separator="至"
  130. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  131. </el-form-item>
  132. </el-col>
  133. <el-col v-show="isTrue" :span="6">
  134. <el-form-item label="非车险起保时间">
  135. <el-date-picker v-model="firstForm.jyRiskStartDate" type="daterange" range-separator="至"
  136. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  137. </el-form-item>
  138. </el-col>
  139. <el-col v-show="isTrue" :span="6">
  140. <el-form-item label="交强保单号">
  141. <el-input v-model="firstForm.jqPolicyNo" placeholder="请输入" clearable></el-input>
  142. </el-form-item>
  143. </el-col>
  144. <el-col v-show="isTrue" :span="6">
  145. <el-form-item label="商业保单号">
  146. <el-input v-model="firstForm.syPolicyNo" placeholder="请输入" clearable></el-input>
  147. </el-form-item>
  148. </el-col>
  149. <el-col v-show="isTrue" :span="6">
  150. <el-form-item label="非车保单号">
  151. <el-input v-model="firstForm.jyPolicyNo" placeholder="请输入" clearable></el-input>
  152. </el-form-item>
  153. </el-col>
  154. <el-col :span="24" style="display: flex;align-items: flex-start; justify-content: flex-end">
  155. <el-button plain @click="handleExport('0')">数据导出</el-button>
  156. <el-button type="primary" @click="handleSearch">搜索</el-button>
  157. <el-button plain @click="handleReset">重置</el-button>
  158. <span class="icon_s">
  159. <span @click="toggleAdvanced">高级搜索</span>
  160. <el-icon class="is_icon" :class="{ 'is_down': isTrue }">
  161. <ArrowDown />
  162. </el-icon>
  163. </span>
  164. </el-col>
  165. </el-row>
  166. </el-form>
  167. <el-table :data="firstData" :height="tableHeight" style="width: 100%; margin-top: 20px;" highlight-current-row>
  168. <el-table-column prop="orderNo" label="订单号" width="120"></el-table-column>
  169. <el-table-column prop="attrType" label="业务员类型" width="120"></el-table-column>
  170. <el-table-column prop="mobile" label="业务员手机号" width="120"></el-table-column>
  171. <el-table-column prop="name" label="业务员" width="120"></el-table-column>
  172. <el-table-column prop="orderType" label="订单类型" width="120"></el-table-column>
  173. <el-table-column prop="agreementName" label="出单协议" width="120"></el-table-column>
  174. <el-table-column prop="companyALlName" label="保险公司" width="120"></el-table-column>
  175. <el-table-column prop="partnerCompanyName" label="保险机构" width="220"></el-table-column>
  176. <el-table-column prop="dockingPerson" label="对接人" width="120"></el-table-column>
  177. <el-table-column prop="licenseNo" label="车牌号" width="120"></el-table-column>
  178. <el-table-column prop="insurName" label="被保人" width="120"></el-table-column>
  179. <el-table-column prop="productName" label="投保险种" width="120"></el-table-column>
  180. <el-table-column prop="createBy" label="录入人" width="120"></el-table-column>
  181. <el-table-column prop="signingTime" label="签单时间" width="120"></el-table-column>
  182. <el-table-column prop="payTime" label="支付时间" width="120"></el-table-column>
  183. <el-table-column prop="quotationTime" label="报价时间" width="120"></el-table-column>
  184. <el-table-column prop="equityAmount" label="权益金额" width="120"></el-table-column>
  185. <el-table-column prop="deptName" label="出单机构" width="120"></el-table-column>
  186. <el-table-column label="操作" fixed="right" width="200">
  187. <template #default="scope">
  188. <el-button link type="primary" size="small" @click="auditReceive(scope.row)">领取</el-button>
  189. <el-button link type="primary" size="small" @click="updateSigningTime(scope.row)">更新签单时间</el-button>
  190. <el-button link type="primary" size="small" @click="handleToDetail(scope, '0')">详情</el-button>
  191. </template>
  192. </el-table-column>
  193. </el-table>
  194. <div class="pagination">
  195. <el-pagination v-model:current-page="pages" v-model:page-size="size" :page-sizes="[10, 20, 30, 40]"
  196. layout="total, sizes, prev, pager, next, jumper" :total="total1" @size-change="handleSizeChange"
  197. @current-change="handleCurrentChange"></el-pagination>
  198. </div>
  199. </el-tab-pane>
  200. <el-tab-pane name="1" class="h-full">
  201. <template #label>
  202. <el-badge :value="total2">
  203. <span>审核通过</span>
  204. </el-badge>
  205. </template>
  206. <el-form v-model="firstForm" label-width="120" ref="formRef1">
  207. <el-row :gutter="20">
  208. <el-col :span="6">
  209. <el-form-item label="保险公司">
  210. <el-select v-model="firstForm.companyId" placeholder="请选择" clearable filterable>
  211. <el-option v-for="item in companyList" :key="item.id" :value="item.id" :label="item.name"></el-option>
  212. </el-select>
  213. </el-form-item>
  214. </el-col>
  215. <el-col :span="6">
  216. <el-form-item label="保险机构">
  217. <el-cascader filterable clearable placeholder="请选择" v-model="firstForm.partnerCompanyId"
  218. style="width: 100%;" :options="companyoptionsList" :props="companyIdprops"
  219. @change="handleCompanyChange" />
  220. </el-form-item>
  221. </el-col>
  222. <el-col :span="6">
  223. <el-form-item label="车牌号">
  224. <el-input v-model="firstForm.licenseNo" placeholder="请输入" clearable></el-input>
  225. </el-form-item>
  226. </el-col>
  227. <el-col :span="6">
  228. <el-form-item label="业务员类型">
  229. <el-select v-model="firstForm.attrType" placeholder="请选择" clearable>
  230. <el-option label="团队" value="5"></el-option>
  231. <el-option label="个代" value="6"></el-option>
  232. <el-option label="渠道" value="7"></el-option>
  233. <el-option label="电销组" value="8"></el-option>
  234. </el-select>
  235. </el-form-item>
  236. </el-col>
  237. <el-col :span="6">
  238. <el-form-item label="业务员">
  239. <el-input v-model="firstForm.salesman" placeholder="请输入" clearable></el-input>
  240. </el-form-item>
  241. </el-col>
  242. <el-col :span="6">
  243. <el-form-item label="业务员手机号">
  244. <el-input v-model="firstForm.phone" placeholder="请输入" clearable></el-input>
  245. </el-form-item>
  246. </el-col>
  247. <el-col :span="6">
  248. <el-form-item label="订单类型">
  249. <el-select v-model="firstForm.orderType" placeholder="请选择" clearable>
  250. <el-option label="车险录入" value="1"></el-option>
  251. <el-option label="代客录单" value="2"></el-option>
  252. <el-option label="补录订单" value="3"></el-option>
  253. </el-select>
  254. </el-form-item>
  255. </el-col>
  256. <el-col :span="6">
  257. <el-form-item label="投保人">
  258. <el-input v-model="firstForm.policyholder" placeholder="请输入" clearable></el-input>
  259. </el-form-item>
  260. </el-col>
  261. <el-col :span="6">
  262. <el-form-item label="被保人">
  263. <el-input v-model="firstForm.insurName" placeholder="请输入" clearable></el-input>
  264. </el-form-item>
  265. </el-col>
  266. <el-col :span="6">
  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="6">
  273. <el-form-item label="支付时间">
  274. <el-date-picker v-model="firstForm.payingTime" type="daterange" range-separator="至"
  275. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  276. </el-form-item>
  277. </el-col>
  278. <el-col :span="6">
  279. <el-form-item label="报价时间">
  280. <el-date-picker v-model="firstForm.quotationTime" type="daterange" range-separator="至"
  281. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  282. </el-form-item>
  283. </el-col>
  284. <el-col :span="6">
  285. <el-form-item label="审核方式">
  286. <el-select v-model="firstForm.auditType" placeholder="请选择" clearable>
  287. <el-option label="人工审核" value="1"></el-option>
  288. <el-option label="自动审核" value="2"></el-option>
  289. </el-select>
  290. </el-form-item>
  291. </el-col>
  292. <el-col :span="6">
  293. <el-form-item label="审核人">
  294. <el-input v-model="firstForm.auditUser" placeholder="请输入" clearable></el-input>
  295. </el-form-item>
  296. </el-col>
  297. <el-col :span="6">
  298. <el-form-item label="审核时间">
  299. <el-date-picker v-model="firstForm.auditTime" type="daterange" range-separator="至"
  300. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  301. </el-form-item>
  302. </el-col>
  303. <el-col v-show="isTrue" :span="6">
  304. <el-form-item label="投保险种">
  305. <el-select v-model="firstForm.productName" placeholder="请选择" clearable>
  306. <el-option label="全部" value=" "></el-option>
  307. <el-option v-for="item in riskType" :key="item.value" :value="item.label"
  308. :label="item.label"></el-option>
  309. </el-select>
  310. </el-form-item>
  311. </el-col>
  312. <el-col v-show="isTrue" :span="6">
  313. <el-form-item label="协议选择">
  314. <el-select v-model="firstForm.agreementId" placeholder="请选择协议" clearable filterable>
  315. <el-option v-for="item in agreementList" :key="item.id" :value="item.id"
  316. :label="item.agreementTitle"></el-option>
  317. </el-select>
  318. </el-form-item>
  319. </el-col>
  320. <el-col v-show="isTrue" :span="6">
  321. <el-form-item label="订单号">
  322. <el-input v-model="firstForm.orderNo" placeholder="请输入" clearable></el-input>
  323. </el-form-item>
  324. </el-col>
  325. <el-col v-show="isTrue" :span="6">
  326. <el-form-item label="对接人">
  327. <el-input v-model="firstForm.contact" placeholder="请输入" clearable></el-input>
  328. </el-form-item>
  329. </el-col>
  330. <el-col v-show="isTrue" :span="6">
  331. <el-form-item label="出单机构">
  332. <el-cascader clearable style="width: 100%" v-model="firstForm.deptId" :options="option"
  333. @change="handleChange" :props="tableProps"></el-cascader>
  334. </el-form-item>
  335. </el-col>
  336. <el-col v-show="isTrue" :span="6">
  337. <el-form-item label="交强险起保时间">
  338. <el-date-picker v-model="firstForm.jqRiskStartDate" type="daterange" range-separator="至"
  339. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  340. </el-form-item>
  341. </el-col>
  342. <el-col v-show="isTrue" :span="6">
  343. <el-form-item label="商业险起保时间">
  344. <el-date-picker v-model="firstForm.syRiskStartDate" type="daterange" range-separator="至"
  345. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  346. </el-form-item>
  347. </el-col>
  348. <el-col v-show="isTrue" :span="6">
  349. <el-form-item label="非车险起保时间">
  350. <el-date-picker v-model="firstForm.jyRiskStartDate" type="daterange" range-separator="至"
  351. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  352. </el-form-item>
  353. </el-col>
  354. <el-col v-show="isTrue" :span="6">
  355. <el-form-item label="交强保单号">
  356. <el-input v-model="firstForm.jyPolicyNo" placeholder="请输入" clearable></el-input>
  357. </el-form-item>
  358. </el-col>
  359. <el-col v-show="isTrue" :span="6">
  360. <el-form-item label="商业保单号">
  361. <el-input v-model="firstForm.syPolicyNo" placeholder="请输入" clearable></el-input>
  362. </el-form-item>
  363. </el-col>
  364. <el-col v-show="isTrue" :span="6">
  365. <el-form-item label="非车保单号">
  366. <el-input v-model="firstForm.jyPolicyNo" placeholder="请输入" clearable></el-input>
  367. </el-form-item>
  368. </el-col>
  369. <el-col :span="6" style="display: flex;align-items: flex-start; justify-content: flex-end">
  370. <el-button plain @click="handleExport('1')">数据导出</el-button>
  371. <el-button type="primary" @click="handleSearch">搜索</el-button>
  372. <el-button plain @click="handleReset">重置</el-button>
  373. <span class="icon_s">
  374. <span @click="toggleAdvanced">高级搜索</span>
  375. <el-icon class="is_icon" :class="{ 'is_down': isTrue }">
  376. <ArrowDown />
  377. </el-icon>
  378. </span>
  379. </el-col>
  380. </el-row>
  381. </el-form>
  382. <el-table :data="secondData" :height="tableHeight" style="width: 100%; margin-top: 20px;" highlight-current-row>
  383. <el-table-column prop="orderNo" label="订单号" width="180"></el-table-column>
  384. <el-table-column prop="attrType" label="业务员类型" width="120"></el-table-column>
  385. <el-table-column prop="mobile" label="业务员手机号" width="120"></el-table-column>
  386. <el-table-column prop="name" label="业务员" width="120"></el-table-column>
  387. <el-table-column prop="orderType" label="订单类型" width="120"></el-table-column>
  388. <el-table-column prop="agreementName" label="出单协议" width="120"></el-table-column>
  389. <el-table-column prop="companyALlName" label="保险公司" width="120"></el-table-column>
  390. <el-table-column prop="partnerCompanyName" label="保险机构" width="220"></el-table-column>
  391. <el-table-column prop="dockingPerson" label="对接人" width="120"></el-table-column>
  392. <el-table-column prop="licenseNo" label="车牌号" width="120"></el-table-column>
  393. <el-table-column prop="insurName" label="被保人" width="120"></el-table-column>
  394. <el-table-column prop="productName" label="投保险种" width="120"></el-table-column>
  395. <el-table-column prop="createBy" label="录入人" width="120"></el-table-column>
  396. <el-table-column prop="signingTime" label="签单时间" width="120"></el-table-column>
  397. <el-table-column prop="payTime" label="支付时间" width="120"></el-table-column>
  398. <el-table-column prop="quotationTime" label="报价时间" width="120"></el-table-column>
  399. <el-table-column prop="auditUser" label="审核人" width="120"></el-table-column>
  400. <el-table-column prop="auditTime" label="审核时间" width="120"></el-table-column>
  401. <el-table-column prop="auditType" label="审核方式" width="120"></el-table-column>
  402. <el-table-column prop="equityAmount" label="权益金额" width="120"></el-table-column>
  403. <el-table-column prop="deptName" label="出单机构" width="120"></el-table-column>
  404. <el-table-column label="操作" fixed="right" width="150">
  405. <template #default="scope">
  406. <el-button link type="primary" size="small" @click="handleToDetail(scope, '1')">详情</el-button>
  407. <el-button link type="primary" size="small" @click="handleTrack(scope)">订单轨迹</el-button>
  408. </template>
  409. </el-table-column>
  410. </el-table>
  411. <div class="pagination">
  412. <el-pagination v-model:current-page="pages" v-model:page-size="size" :page-sizes="[10, 20, 30, 40]"
  413. layout="total, sizes, prev, pager, next, jumper" :total="total2" @size-change="handleSizeChange"
  414. @current-change="handleCurrentChange"></el-pagination>
  415. </div>
  416. </el-tab-pane>
  417. <el-tab-pane name="2" class="h-full">
  418. <template #label>
  419. <el-badge :value="total3">
  420. <span>审核不通过</span>
  421. </el-badge>
  422. </template>
  423. <el-form v-model="firstForm" label-width="100" ref="formRef2">
  424. <el-row :gutter="20">
  425. <el-col :span="8">
  426. <el-form-item label="保险公司">
  427. <el-select v-model="firstForm.companyId" placeholder="请选择" clearable filterable>
  428. <el-option v-for="item in companyList" :key="item.id" :value="item.id" :label="item.name"></el-option>
  429. </el-select>
  430. </el-form-item>
  431. </el-col>
  432. <el-col :span="8">
  433. <el-form-item label="保险机构">
  434. <el-cascader filterable clearable placeholder="请选择" v-model="firstForm.partnerCompanyId"
  435. style="width: 100%;" :options="companyoptionsList" :props="companyIdprops"
  436. @change="handleCompanyChange" />
  437. </el-form-item>
  438. </el-col>
  439. <el-col :span="8">
  440. <el-form-item label="车牌号">
  441. <el-input v-model="firstForm.licenseNo" placeholder="请输入" clearable></el-input>
  442. </el-form-item>
  443. </el-col>
  444. <el-col :span="8">
  445. <el-form-item label="业务员类型">
  446. <el-select v-model="firstForm.attrType" placeholder="请选择" clearable>
  447. <el-option label="团队" value="5"></el-option>
  448. <el-option label="个代" value="6"></el-option>
  449. <el-option label="渠道" value="7"></el-option>
  450. <el-option label="电销组" value="8"></el-option>
  451. </el-select>
  452. </el-form-item>
  453. </el-col>
  454. <el-col :span="8">
  455. <el-form-item label="业务员">
  456. <el-input v-model="firstForm.salesman" placeholder="请输入" clearable></el-input>
  457. </el-form-item>
  458. </el-col>
  459. <el-col :span="8">
  460. <el-form-item label="业务员手机号">
  461. <el-input v-model="firstForm.phone" placeholder="请输入" clearable></el-input>
  462. </el-form-item>
  463. </el-col>
  464. <el-col :span="8">
  465. <el-form-item label="签单时间">
  466. <el-date-picker v-model="firstForm.signingTime" type="daterange" range-separator="至"
  467. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  468. </el-form-item>
  469. </el-col>
  470. <el-col :span="8">
  471. <el-form-item label="驳回时间">
  472. <el-date-picker v-model="firstForm.auditTime" type="daterange" range-separator="至"
  473. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  474. </el-form-item>
  475. </el-col>
  476. <el-col :span="isTrue ? 16 : 8" style="display: flex;align-items: flex-start; justify-content: flex-end">
  477. <el-button plain @click="handleExport('2')">数据导出</el-button>
  478. <el-button type="primary" @click="handleSearch">搜索</el-button>
  479. <el-button plain @click="handleReset">重置</el-button>
  480. <span class="icon_s">
  481. <span @click="toggleAdvanced">高级搜索</span>
  482. <el-icon class="is_icon" :class="{ 'is_down': isTrue }">
  483. <ArrowDown />
  484. </el-icon>
  485. </span>
  486. </el-col>
  487. </el-row>
  488. </el-form>
  489. <el-table :data="thirdData" :height="tableHeight"
  490. style="width: 100%; margin-top: 20px;" highlight-current-row>
  491. <el-table-column prop="orderNo" label="订单号" width="120"></el-table-column>
  492. <el-table-column prop="attrType" label="业务员类型" width="120"></el-table-column>
  493. <el-table-column prop="mobile" label="业务员手机号" width="120"></el-table-column>
  494. <el-table-column prop="name" label="业务员" width="120"></el-table-column>
  495. <el-table-column prop="companyALlName" label="保险公司" width="120"></el-table-column>
  496. <el-table-column prop="partnerCompanyIdName" label="保险机构" width="220"></el-table-column>
  497. <el-table-column prop="licenseNo" label="车牌号" width="120"></el-table-column>
  498. <el-table-column prop="insurName" label="被保人" width="120"></el-table-column>
  499. <el-table-column prop="createBy" label="录入人" width="120"></el-table-column>
  500. <el-table-column prop="refuseReason" label="驳回原因" width="120"></el-table-column>
  501. <el-table-column prop="auditTime" label="驳回时间" width="120"></el-table-column>
  502. <el-table-column prop="signingTime" label="签单时间" width="120"></el-table-column>
  503. <el-table-column prop="payTime" label="支付时间" width="120"></el-table-column>
  504. <el-table-column prop="quotationTime" label="报价时间" width="120"></el-table-column>
  505. <el-table-column label="操作" fixed="right" width="300">
  506. <template #default="scope">
  507. <el-button link type="primary" size="small" @click="auditReceive(scope.row)">领取</el-button>
  508. <el-button link type="primary" size="small" @click="updateSigningTime(scope.row)">更新签单时间</el-button>
  509. <el-button link type="primary" size="small" @click="handleToDetail(scope, '2')">详情</el-button>
  510. <el-button link type="primary" size="small" @click="handleTrack(scope)">订单轨迹</el-button>
  511. </template>
  512. </el-table-column>
  513. </el-table>
  514. <div class="pagination">
  515. <el-pagination v-model:current-page="pages" v-model:page-size="size" :page-sizes="[10, 20, 30, 40]"
  516. layout="total, sizes, prev, pager, next, jumper" :total="total3" @size-change="handleSizeChange"
  517. @current-change="handleCurrentChange"></el-pagination>
  518. </div>
  519. </el-tab-pane>
  520. <el-tab-pane name="3" class="h-full">
  521. <template #label>
  522. <el-badge :value="total4">
  523. <span>疑问订单</span>
  524. </el-badge>
  525. </template>
  526. <el-form v-model="firstForm" label-width="100" ref="formRef3">
  527. <el-row :gutter="20">
  528. <el-col :span="8">
  529. <el-form-item label="保险公司">
  530. <el-select v-model="firstForm.companyId" placeholder="请选择" clearable filterable>
  531. <el-option v-for="item in companyList" :key="item.id" :value="item.id" :label="item.name"></el-option>
  532. </el-select>
  533. </el-form-item>
  534. </el-col>
  535. <el-col :span="8">
  536. <el-form-item label="保险机构">
  537. <el-cascader filterable clearable placeholder="请选择" v-model="firstForm.partnerCompanyId"
  538. style="width: 100%;" :options="companyoptionsList" :props="companyIdprops"
  539. @change="handleCompanyChange" />
  540. </el-form-item>
  541. </el-col>
  542. <el-col :span="8">
  543. <el-form-item label="车牌号">
  544. <el-input v-model="firstForm.licenseNo" placeholder="请输入" clearable></el-input>
  545. </el-form-item>
  546. </el-col>
  547. <el-col :span="8">
  548. <el-form-item label="业务员类型">
  549. <el-select v-model="firstForm.attrType" placeholder="请选择" clearable>
  550. <el-option label="团队" value="5"></el-option>
  551. <el-option label="个代" value="6"></el-option>
  552. <el-option label="渠道" value="7"></el-option>
  553. <el-option label="电销组" value="8"></el-option>
  554. </el-select>
  555. </el-form-item>
  556. </el-col>
  557. <el-col :span="8">
  558. <el-form-item label="业务员">
  559. <el-input v-model="firstForm.salesman" placeholder="请输入" clearable></el-input>
  560. </el-form-item>
  561. </el-col>
  562. <el-col :span="8">
  563. <el-form-item label="业务员手机号">
  564. <el-input v-model="firstForm.phone" placeholder="请输入" clearable></el-input>
  565. </el-form-item>
  566. </el-col>
  567. <el-col :span="8">
  568. <el-form-item label="签单时间">
  569. <el-date-picker v-model="firstForm.signingTime" type="daterange" range-separator="至"
  570. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  571. </el-form-item>
  572. </el-col>
  573. <el-col :span="8">
  574. <el-form-item label="疑问时间">
  575. <el-date-picker v-model="firstForm.problemTime" type="daterange" range-separator="至"
  576. start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
  577. </el-form-item>
  578. </el-col>
  579. <el-col v-show="isTrue" :span="8">
  580. <el-form-item label="被保人">
  581. <el-input v-model="firstForm.insurName" placeholder="请输入" clearable></el-input>
  582. </el-form-item>
  583. </el-col>
  584. <el-col v-show="isTrue" :span="8">
  585. <el-form-item label="订单类型">
  586. <el-select v-model="firstForm.orderType" placeholder="请选择" clearable>
  587. <el-option label="车险录入" value="1"></el-option>
  588. <el-option label="代客录单" value="2"></el-option>
  589. <el-option label="补录订单" value="3"></el-option>
  590. </el-select>
  591. </el-form-item>
  592. </el-col>
  593. <el-col v-show="isTrue" :span="8">
  594. <el-form-item label="协议选择">
  595. <el-select v-model="firstForm.agreementId" placeholder="请选择协议" clearable filterable>
  596. <el-option v-for="item in agreementList" :key="item.id" :value="item.id"
  597. :label="item.agreementTitle"></el-option>
  598. </el-select>
  599. </el-form-item>
  600. </el-col>
  601. <el-col :span="isTrue ? 16 : 8" style="display: flex;align-items: flex-start; justify-content: flex-end">
  602. <el-button plain @click="handleExport('3')">数据导出</el-button>
  603. <el-button type="primary" @click="handleSearch">搜索</el-button>
  604. <el-button plain @click="handleReset">重置</el-button>
  605. <span class="icon_s">
  606. <span @click="toggleAdvanced">高级搜索</span>
  607. <el-icon class="is_icon" :class="{ 'is_down': isTrue }">
  608. <ArrowDown />
  609. </el-icon>
  610. </span>
  611. </el-col>
  612. </el-row>
  613. </el-form>
  614. <el-table :data="forthData" :height="tableHeight" style="width: 100%; margin-top: 20px;"
  615. highlight-current-row>
  616. <el-table-column prop="orderNo" label="订单号" width="120"></el-table-column>
  617. <el-table-column prop="attrType" label="业务员类型" width="120">
  618. </el-table-column>
  619. <el-table-column prop="mobile" label="业务员手机号" width="120"></el-table-column>
  620. <el-table-column prop="name" label="业务员" width="120"></el-table-column>
  621. <el-table-column prop="orderType" label="订单类型" width="120">
  622. </el-table-column>
  623. <el-table-column prop="agreementName" label="出单协议" width="120"></el-table-column>
  624. <el-table-column prop="companyName" label="保险公司" width="120"></el-table-column>
  625. <el-table-column prop="partnerCompanyName" label="保险机构" width="220"></el-table-column>
  626. <el-table-column prop="dockingPerson" label="对接人" width="120"></el-table-column>
  627. <el-table-column prop="licenseNo" label="车牌号" width="120"></el-table-column>
  628. <el-table-column prop="insurName" label="被保人" width="120"></el-table-column>
  629. <el-table-column prop="productName" label="投保险种" width="120"></el-table-column>
  630. <el-table-column prop="createBy" label="录入人" width="120"></el-table-column>
  631. <el-table-column prop="auditingUserName" label="审核人" width="120"></el-table-column>
  632. <el-table-column prop="problemReason" label="疑问原因" width="120"></el-table-column>
  633. <el-table-column prop="problemTime" label="疑问时间" width="120"></el-table-column>
  634. <el-table-column prop="signingTime" label="签单时间" width="120"></el-table-column>
  635. <el-table-column prop="payTime" label="支付时间" width="120"></el-table-column>
  636. <el-table-column prop="quotationTime" label="报价时间" width="120"></el-table-column>
  637. <el-table-column prop="equityAmount" label="权益金额" width="120"></el-table-column>
  638. <el-table-column prop="deptName" label="出单机构" width="120"></el-table-column>
  639. <el-table-column label="操作" fixed="right" width="200">
  640. <template #default="scope">
  641. <el-button link type="primary" size="small" @click="handleToDetail(scope, '3')">详情</el-button>
  642. <el-button link type="primary" size="small" @click="handleCancel(scope)">取消疑问订单</el-button>
  643. </template>
  644. </el-table-column>
  645. </el-table>
  646. <div class="pagination">
  647. <el-pagination v-model:current-page="pages" v-model:page-size="size" :page-sizes="[10, 20, 30, 40]"
  648. layout="total, sizes, prev, pager, next, jumper" :total="total3" @size-change="handleSizeChange"
  649. @current-change="handleCurrentChange"></el-pagination>
  650. </div>
  651. </el-tab-pane>
  652. </el-tabs>
  653. <el-dialog :close-on-click-modal="false" v-model="trackShow" width="1000" title="订单轨迹">
  654. <el-table :data="orderData" height="300">
  655. <el-table-column label="变更信息">
  656. <template #default="scope">
  657. {{ `${scope.row.createByName}:${scope.row.createTime}` }}
  658. </template>
  659. </el-table-column>
  660. <el-table-column prop="optContent" label="变更内容"></el-table-column>
  661. <el-table-column prop="changeBefore" label="变更前">
  662. <template #default="scope">
  663. <el-button type="primary" link size="small" @click="viewDetail(scope.row)">查看明细</el-button>
  664. </template>
  665. </el-table-column>
  666. <el-table-column prop="changeAfter" label="变更后">
  667. <template #default="scope">
  668. <el-button type="primary" link size="small" @click="viewDetail(scope.row)">查看明细</el-button>
  669. </template>
  670. </el-table-column>
  671. <el-table-column prop="result" label="保司反馈"></el-table-column>
  672. </el-table>
  673. </el-dialog>
  674. </PageMain>
  675. </template>
  676. <script setup lang="ts">
  677. import api from '@/api'
  678. import { ElMessage } from "element-plus";
  679. import { useRoute, useRouter } from 'vue-router'
  680. import { FormInstance } from 'element-plus';
  681. import { nextTick, type Ref } from 'vue'
  682. const myRoute = useRoute()
  683. const myRouter = useRouter()
  684. // 4 个 tab 各自独立的 form ref
  685. const formRef0 = ref<FormInstance>()
  686. const formRef1 = ref<FormInstance>()
  687. const formRef2 = ref<FormInstance>()
  688. const formRef3 = ref<FormInstance>()
  689. const formRefMap: Record<string, Ref<FormInstance | undefined>> = {
  690. '0': formRef0,
  691. '1': formRef1,
  692. '2': formRef2,
  693. '3': formRef3,
  694. }
  695. const tableHeight = ref(); // 初始化表格高度
  696. // 切换高级搜索,等 DOM 更新后再重算表格高度
  697. const toggleAdvanced = async () => {
  698. isTrue.value = !isTrue.value
  699. await nextTick()
  700. handleResize()
  701. }
  702. function handleResize() {
  703. // 获取当前窗口的高度
  704. const height = window.innerHeight;
  705. // 根据当前激活的 tab 获取对应的 form ref
  706. const currentFormRef = formRefMap[activeName.value as string]
  707. // 获取表单元素
  708. const formElement = currentFormRef?.value?.$el as HTMLElement;
  709. if (formElement) {
  710. const formHeight = formElement.offsetHeight; // 获取表单高度
  711. console.log(formHeight)
  712. // 获取分页控件的高度
  713. const paginationElement = document.querySelector('.pagination') as HTMLElement;
  714. const paginationHeight = paginationElement ? paginationElement.offsetHeight : 40;
  715. // 计算表格高度:窗口高度 - 表单高度 - 分页高度 - 页面顶部预留空间
  716. const availableHeight = height - formHeight - paginationHeight - 323; // 60是页面顶部预留空间
  717. // 确保表格高度不小于最小值
  718. tableHeight.value = Math.max(availableHeight, 0) + "px";
  719. console.log(tableHeight.value)
  720. }
  721. }
  722. let activeName = ref(myRoute.query.activeindex as any || '0')
  723. const handleClick = async (e) => {
  724. activeName.value = e.props.name
  725. pages.value = 1
  726. size.value = 10
  727. firstForm.value = {}
  728. isTrue.value = false // 切换 tab 时收起高级搜索,避免互相影响
  729. await nextTick()
  730. // 先重算表格高度(此时 form 已显示,offsetHeight 是真实值),再加载数据,避免数据加载中的 loading/empty 状态干扰高度计算
  731. handleResize()
  732. initData(activeName.value)
  733. }
  734. const companyIdprops = {
  735. expandTrigger: 'hover' as const,
  736. value: 'id',
  737. label: 'name',
  738. checkStrictly: true,
  739. }
  740. // 保险公司选择器改变时触发
  741. const handleCompanyChange = (e: any) => {
  742. firstForm.value.partnerCompanyId = e[e.length - 1] || ''
  743. }
  744. // 待审核
  745. let firstForm = ref({})
  746. let option = ref([])
  747. const tableProps = ref({
  748. value: "id",
  749. label: "name",
  750. children: "children",
  751. checkStrictly: true,
  752. });
  753. const institutionList = () => {
  754. api.institutionApi.institutionList({ name: '', system: '' }).then((res: any) => {
  755. if (res.code == 200) {
  756. option.value = res.data
  757. } else {
  758. ElMessage({
  759. message: res.msg,
  760. type: 'warning'
  761. })
  762. }
  763. })
  764. }
  765. let firstData = ref([])
  766. let secondData = ref([])
  767. let thirdData = ref([])
  768. let forthData = ref([])
  769. let total1 = ref(0)
  770. let total2 = ref(0)
  771. let total3 = ref(0)
  772. let total4 = ref(0)
  773. let pages = ref(1)
  774. let size = ref(10)
  775. const handleSizeChange = (size) => {
  776. size.value = size
  777. initData(activeName.value)
  778. }
  779. const handleCurrentChange = (page) => {
  780. pages.value = page
  781. initData(activeName.value)
  782. }
  783. // 是否高级搜索
  784. let isTrue = ref(false)
  785. let companyList = ref([])
  786. let companyoptionsList = ref([])
  787. const initCompany = () => {
  788. api.insuranceApi.leftList('').then((res: any) => {
  789. if (res.code == 200) {
  790. companyList.value = res.data
  791. }
  792. })
  793. }
  794. const initCompanyOptions = () => {
  795. api.agreementApi.findTree({ name: "", systemCode: localStorage.getItem('login_system') }).then((res: any) => {
  796. if (res.code == 200) {
  797. companyoptionsList.value = res.data
  798. }
  799. })
  800. }
  801. // 领取
  802. const auditReceive = (row) => {
  803. /**
  804. * 领取财务审核订单
  805. *
  806. * 功能说明:
  807. * 1. 首先检查订单是否被锁定(防止多人同时领取)
  808. * 2. 若未被锁定(res.data 为 false),则调用领取接口
  809. * 3. 领取成功后显示成功提示
  810. * 4. 若订单已被锁定,则显示警告提示
  811. *
  812. * @param {Object} row - 订单数据对象
  813. * @param {string} row.orderNo - 订单编号,用于锁定检查和领取操作
  814. */
  815. api.financeApi.isLock(row.orderNo).then((res: any) => {
  816. if (res.code == 200) {
  817. if (!res.data) {
  818. api.financeApi.auditReceive(row.orderNo).then((res: any) => {
  819. if (res.code == 200) {
  820. initData(activeName.value)
  821. ElMessage({
  822. message: res.msg,
  823. type: 'success'
  824. })
  825. myRouter.push({
  826. path: '/finance/auditOrderDetail',
  827. query: {
  828. id: row.orderNo,
  829. isShow: 1,
  830. activeindex: activeName.value
  831. }
  832. })
  833. }
  834. })
  835. } else {
  836. ElMessage({
  837. message: res.msg,
  838. type: 'warning'
  839. })
  840. }
  841. }
  842. })
  843. }
  844. //更新签单时间
  845. const updateSigningTime = (row) => {
  846. api.financeApi.updateSigningTime(row.orderNo).then((res: any) => {
  847. if (res.code == 200) {
  848. ElMessage({
  849. message: res.msg,
  850. type: 'success'
  851. })
  852. } else {
  853. ElMessage({
  854. message: res.msg,
  855. type: 'warning'
  856. })
  857. }
  858. })
  859. }
  860. const handleChange = (val) => {
  861. firstForm.value.deptId = val[val.length - 1]
  862. }
  863. const handleCancel = (scope) => {
  864. api.financeApi.updateToUnQuestionOrder(scope.row.orderNo).then((res: any) => {
  865. if (res.code == 200) {
  866. ElMessage({
  867. message: res.msg,
  868. type: 'warning'
  869. })
  870. initData('3')
  871. }
  872. })
  873. }
  874. const initData = (type) => {
  875. let obj = {}
  876. if (type == '0' || type == '1' || type == '2') {
  877. obj = {
  878. ...firstForm.value,
  879. quotationTimeStart: firstForm.value?.quotationTime?.[0],
  880. quotationTimeEnd: firstForm.value?.quotationTime?.[1],
  881. signingTimeStart: firstForm.value?.signingTime?.[0],
  882. signingTimeEnd: firstForm.value?.signingTime?.[1],
  883. payingTimeBegin: firstForm.value?.payingTime?.[0],
  884. payingTimeEnd: firstForm.value?.payingTime?.[1],
  885. jqRiskStartDateBegin: firstForm.value?.jqRiskStartDate?.[0],
  886. jqRiskStartDateEnd: firstForm.value?.jqRiskStartDate?.[1],
  887. syRiskStartDateBegin: firstForm.value?.syRiskStartDate?.[0],
  888. syRiskStartDateEnd: firstForm.value?.syRiskStartDate?.[1],
  889. jyRiskStartDateBegin: firstForm.value?.jyRiskStartDate?.[0],
  890. jyRiskStartDateEnd: firstForm.value?.jyRiskStartDate?.[1],
  891. auditTimeBegin: firstForm.value?.auditTime?.[0],
  892. auditTimeEnd: firstForm.value?.auditTime?.[1],
  893. problemTimeBegin: firstForm.value?.problemTime?.[0],
  894. problemTimeEnd: firstForm.value?.problemTime?.[1],
  895. auditStatus: type,
  896. pages: pages.value,
  897. size: size.value,
  898. }
  899. } else {
  900. obj = {
  901. pages: pages.value,
  902. size: size.value,
  903. ...firstForm.value,
  904. quotationTimeStart: firstForm.value?.quotationTime?.[0],
  905. quotationTimeEnd: firstForm.value?.quotationTime?.[1],
  906. signingTimeStart: firstForm.value?.signingTime?.[0],
  907. signingTimeEnd: firstForm.value?.signingTime?.[1],
  908. payingTimeBegin: firstForm.value?.payingTime?.[0],
  909. payingTimeEnd: firstForm.value?.payingTime?.[1],
  910. jqRiskStartDateBegin: firstForm.value?.jqRiskStartDate?.[0],
  911. jqRiskStartDateEnd: firstForm.value?.jqRiskStartDate?.[1],
  912. syRiskStartDateBegin: firstForm.value?.syRiskStartDate?.[0],
  913. syRiskStartDateEnd: firstForm.value?.syRiskStartDate?.[1],
  914. jyRiskStartDateBegin: firstForm.value?.jyRiskStartDate?.[0],
  915. jyRiskStartDateEnd: firstForm.value?.jyRiskStartDate?.[1],
  916. auditTimeBegin: firstForm.value?.auditTime?.[0],
  917. auditTimeEnd: firstForm.value?.auditTime?.[1],
  918. problemTimeBegin: firstForm.value?.problemTime?.[0],
  919. problemTimeEnd: firstForm.value?.problemTime?.[1],
  920. isProblem: 1
  921. }
  922. }
  923. if (type == '0') {
  924. obj.allTodoReceive = true;
  925. }
  926. api.financeApi.auditList(obj).then((res: any) => {
  927. if (res.code == 200) {
  928. switch (type) {
  929. case '0':
  930. firstData.value = res.data.records
  931. total1.value = res.data.total
  932. break;
  933. case '1':
  934. secondData.value = res.data.records
  935. total2.value = res.data.total
  936. break;
  937. case '2':
  938. thirdData.value = res.data.records
  939. total3.value = res.data.total
  940. break;
  941. case '3':
  942. forthData.value = res.data.records
  943. total4.value = res.data.total
  944. break;
  945. }
  946. }
  947. })
  948. }
  949. const handleSearch = () => {
  950. initData(activeName.value)
  951. }
  952. const handleReset = () => {
  953. firstForm.value = {}
  954. initData(activeName.value)
  955. }
  956. const handleToDetail = (scope, type) => {
  957. myRouter.push({
  958. path: '/finance/auditOrderDetail',
  959. query: {
  960. id: scope.row.orderNo,
  961. activeindex: type
  962. }
  963. })
  964. }
  965. let orderData = ref([])
  966. let trackShow = ref(false)
  967. const handleTrack = (scope) => {
  968. api.insurancePolicyApi.orderTrack({
  969. orderNo: scope.row.orderNo
  970. }).then((res: any) => {
  971. if (res.code == 200) {
  972. orderData.value = res.data
  973. trackShow.value = true
  974. } else {
  975. ElMessage({
  976. message: res.msg,
  977. type: 'warning'
  978. })
  979. }
  980. })
  981. }
  982. const viewDetail = (row) => {
  983. myRouter.push({
  984. name: 'InsurancePolicyViewDetail',
  985. query: {
  986. info: JSON.stringify(row),
  987. activeindex: activeName.value
  988. }
  989. })
  990. }
  991. // 数据导出// 数据导出
  992. const handleExport = (type: any) => {
  993. let obj = {
  994. ...firstForm.value,
  995. auditStatus: type,
  996. }
  997. if (type == '0') {
  998. obj.allTodoReceive = true;
  999. } else {
  1000. delete obj.allTodoReceive;
  1001. }
  1002. api.financeApi.exportOrderExcel(obj).then((res: any) => {
  1003. if (res.code == 200) {
  1004. const link = document.createElement('a');
  1005. link.href = res.msg;
  1006. link.download = '';
  1007. // 触发下载
  1008. document.body.appendChild(link);
  1009. link.click();
  1010. document.body.removeChild(link);
  1011. }
  1012. })
  1013. }
  1014. const riskType = ref([])
  1015. const dictRisk = () => {
  1016. api.additionalApi.dictDetails('report_risk_code').then((res: any) => {
  1017. if (res.code == 200) {
  1018. riskType.value = res.data.filter(v => v.value !== '0')
  1019. }
  1020. })
  1021. }
  1022. // 获取协议列表
  1023. const agreementList = ref()
  1024. const getagreementList = () => {
  1025. api.agreementApi.agreementList({
  1026. isExternal: '0',
  1027. pages: 1,
  1028. size: 1000,
  1029. }).then((res: any) => {
  1030. if (res.code == 200) {
  1031. agreementList.value = res.data.records
  1032. }
  1033. })
  1034. }
  1035. onMounted(() => {
  1036. institutionList();
  1037. dictRisk();
  1038. initCompany();
  1039. initCompanyOptions()
  1040. initData('0')
  1041. initData('1')
  1042. initData('2')
  1043. initData('3')
  1044. getagreementList()
  1045. handleResize()
  1046. })
  1047. </script>
  1048. <style scoped lang="scss">
  1049. .icon_s {
  1050. display: flex;
  1051. align-items: center;
  1052. justify-content: flex-end;
  1053. margin-left: 20px;
  1054. color: #00a0f4;
  1055. cursor: pointer;
  1056. .is_icon {
  1057. transition: ease 0.2s;
  1058. }
  1059. .is_down {
  1060. transform: rotate(180deg);
  1061. }
  1062. }
  1063. .pagination {
  1064. margin-top: 10px;
  1065. display: flex;
  1066. justify-content: flex-end;
  1067. }
  1068. :deep(.el-badge__content.is-fixed) {
  1069. right: calc(var(--el-badge-size) / 2 - 10px);
  1070. top: 50%;
  1071. }
  1072. :deep(.el-badge__content--danger) {
  1073. background-color: #D40000;
  1074. }
  1075. /* 自定义表格点击高亮颜色 */
  1076. :deep(.el-table__body tr.current-row > td) {
  1077. background-color: #c1e8fa !important;
  1078. }
  1079. :deep(.el-table__body tr.current-row:hover > td) {
  1080. background-color: #b4ddf8 !important;
  1081. }
  1082. </style>