index.vue 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478
  1. <template>
  2. <div class="order">
  3. <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
  4. <el-tab-pane name="first">
  5. <template #label>
  6. 待审核(12)
  7. </template>
  8. <el-form label-width="100" label-position="left" :model="form">
  9. <el-row :gutter="20">
  10. <el-col :span="8">
  11. <el-form-item label="订单号">
  12. <el-input v-model="form.orderNo" placeholder="请输入订单号查找"></el-input>
  13. </el-form-item>
  14. </el-col>
  15. <el-col :span="8">
  16. <el-form-item label="业务员信息">
  17. <el-input v-model="form.salesman" placeholder="请输入业务员信息,手机号查找"></el-input>
  18. </el-form-item>
  19. </el-col>
  20. <el-col :span="8">
  21. <el-form-item label="业务员归属">
  22. <el-cascader
  23. clearable
  24. style="width: 100%"
  25. v-model="form.salesmanCompany"
  26. :options="option"
  27. :props="tableProps"
  28. />
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="8">
  32. <el-form-item label="保险公司">
  33. <el-select v-model="form.companyName" placeholder="请选择">
  34. <el-option label="公司1" value="1" key="1"></el-option>
  35. </el-select>
  36. </el-form-item>
  37. </el-col>
  38. <el-col :span="8">
  39. <el-form-item label="车牌号">
  40. <el-input v-model="form.licenseNo" placeholder="输入车牌号"></el-input>
  41. </el-form-item>
  42. </el-col>
  43. <el-col :span="8">
  44. <el-form-item label="录单时间">
  45. <el-date-picker
  46. v-model="form.recordingTime"
  47. type="daterange"
  48. range-separator="至"
  49. start-placeholder="开始时间"
  50. end-placeholder="结束时间"
  51. format="YYYY-MM-DD"
  52. value-format="YYYY-MM-DD"
  53. @change="timeChange"
  54. />
  55. </el-form-item>
  56. </el-col>
  57. <el-col :span="24" style="display: flex; justify-content: flex-end">
  58. <el-button type="primary" @click="search">查询</el-button>
  59. <el-button plain type="primary" @click="reset">重置</el-button>
  60. </el-col>
  61. </el-row>
  62. </el-form>
  63. <el-table
  64. :data="tableData"
  65. style="margin-top: 24px"
  66. hight="500"
  67. >
  68. <el-table-column label="订单号" prop="a" width="200">
  69. <template #default="scope">
  70. <el-button link type="primary" @click="handleDetail(scope.row)">{{ scope.row.quoteNo }}</el-button>
  71. </template>
  72. </el-table-column >
  73. <el-table-column label="业务员信息" prop="realQuoteUserName" width="120"></el-table-column>
  74. <el-table-column label="业务员归属" prop="salesmanCompany" width="120"></el-table-column>
  75. <el-table-column label="保险公司" prop="companyName" width="120"></el-table-column>
  76. <el-table-column label="车牌号" prop="licenseNo" width="120"></el-table-column>
  77. <el-table-column label="交强险保费" prop="jqPremium" width="120"></el-table-column>
  78. <el-table-column label="车船税" prop="taxPremium" width="120"></el-table-column>
  79. <el-table-column label="商业险保费" prop="syPremium" width="120"></el-table-column>
  80. <el-table-column label="驾意险保费" prop="jyPremium" width="120"></el-table-column>
  81. <el-table-column label="保费总额" prop="sumPremium" width="120"></el-table-column>
  82. <el-table-column label="录单时间" prop="createTime" width="150"></el-table-column>
  83. <el-table-column label="录单人" prop="createBy" width="100"></el-table-column>
  84. <el-table-column label="操作" fixed="right" width="200">
  85. <template #default="scope">
  86. <el-button link type="primary">审核</el-button>
  87. <el-button link type="primary" @click="handleEdit(scope.row)">编辑</el-button>
  88. <el-button link type="primary" @click="handleDel(scope.row)">删除</el-button>
  89. </template>
  90. </el-table-column>
  91. </el-table>
  92. <div class="pagination">
  93. <el-pagination
  94. v-model:current-page="pages"
  95. v-model:page-size="size"
  96. :page-sizes="[10, 20, 30, 40]"
  97. layout="total, sizes, prev, pager, next, jumper"
  98. :total="total"
  99. @size-change="handleSizeChange"
  100. @current-change="handleCurrentChange"
  101. ></el-pagination>
  102. </div>
  103. </el-tab-pane>
  104. <el-tab-pane name="second">
  105. <template #label>
  106. 审核通过(12)
  107. </template>
  108. <el-form label-width="100" label-position="left" :model="form">
  109. <el-row :gutter="20">
  110. <el-col :span="8">
  111. <el-form-item label="订单号">
  112. <el-input v-model="form.orderNo" placeholder="请输入订单号查找"></el-input>
  113. </el-form-item>
  114. </el-col>
  115. <el-col :span="8">
  116. <el-form-item label="业务员信息">
  117. <el-input v-model="form.salesman" placeholder="请输入业务员信息,手机号查找"></el-input>
  118. </el-form-item>
  119. </el-col>
  120. <el-col :span="8">
  121. <el-form-item label="业务员归属">
  122. <el-cascader
  123. clearable
  124. style="width: 100%"
  125. v-model="form.salesmanCompany"
  126. :options="option"
  127. :props="tableProps"
  128. />
  129. </el-form-item>
  130. </el-col>
  131. <el-col :span="8">
  132. <el-form-item label="保险公司">
  133. <el-select v-model="form.companyName" placeholder="请选择">
  134. <el-option label="公司1" value="1" key="1"></el-option>
  135. </el-select>
  136. </el-form-item>
  137. </el-col>
  138. <el-col :span="8">
  139. <el-form-item label="车牌号">
  140. <el-input v-model="form.licenseNo" placeholder="输入车牌号"></el-input>
  141. </el-form-item>
  142. </el-col>
  143. <el-col :span="8">
  144. <el-form-item label="录单时间">
  145. <el-date-picker
  146. v-model="form.recordingTime"
  147. type="daterange"
  148. range-separator="至"
  149. start-placeholder="开始时间"
  150. end-placeholder="结束时间"
  151. format="YYYY-MM-DD"
  152. value-format="YYYY-MM-DD"
  153. @change="timeChange"
  154. />
  155. </el-form-item>
  156. </el-col>
  157. <el-col :span="24" style="display: flex; justify-content: flex-end">
  158. <el-button type="primary" @click="search">查询</el-button>
  159. <el-button plain type="primary" @click="reset">重置</el-button>
  160. </el-col>
  161. </el-row>
  162. </el-form>
  163. <el-table
  164. :data="tableData"
  165. style="margin-top: 24px"
  166. hight="500"
  167. >
  168. <el-table-column label="订单号" prop="a" width="200">
  169. <template #default="scope">
  170. <el-button link type="primary" @click="handleDetail(scope.row)">{{ scope.row.quoteNo }}</el-button>
  171. </template>
  172. </el-table-column >
  173. <el-table-column label="业务员信息" prop="auditName" width="120"></el-table-column>
  174. <el-table-column label="业务员归属" prop="salesmanCompany" width="120"></el-table-column>
  175. <el-table-column label="保险公司" prop="companyName" width="120"></el-table-column>
  176. <el-table-column label="车牌号" prop="licenseNo" width="120"></el-table-column>
  177. <el-table-column label="交强险保费" prop="jqPremium" width="120"></el-table-column>
  178. <el-table-column label="车船税" prop="taxPremium" width="120"></el-table-column>
  179. <el-table-column label="商业险保费" prop="syPremium" width="120"></el-table-column>
  180. <el-table-column label="驾意险保费" prop="jyPremium" width="120"></el-table-column>
  181. <el-table-column label="保费总额" prop="sumPremium" width="120"></el-table-column>
  182. <el-table-column label="录单时间" prop="createTime" width="150"></el-table-column>
  183. <el-table-column label="录单人" prop="createBy" width="100"></el-table-column>
  184. <el-table-column label="操作" fixed="right" width="200">
  185. <template #default="scope">
  186. <el-button link type="primary">审核</el-button>
  187. <el-button link type="primary" @click="handleEdit(scope.row)">编辑</el-button>
  188. <el-button link type="primary" @click="handleDel(scope.row)">删除</el-button>
  189. </template>
  190. </el-table-column>
  191. </el-table>
  192. <div class="pagination">
  193. <el-pagination
  194. v-model:current-page="pages"
  195. v-model:page-size="size"
  196. :page-sizes="[10, 20, 30, 40]"
  197. layout="total, sizes, prev, pager, next, jumper"
  198. :total="total"
  199. @size-change="handleSizeChange"
  200. @current-change="handleCurrentChange"
  201. ></el-pagination>
  202. </div>
  203. </el-tab-pane>
  204. <el-tab-pane name="third">
  205. <template #label>
  206. 审核不通过(12)
  207. </template>
  208. <el-form label-width="100" label-position="left" :model="form">
  209. <el-row :gutter="20">
  210. <el-col :span="8">
  211. <el-form-item label="订单号">
  212. <el-input v-model="form.orderNo" placeholder="请输入订单号查找"></el-input>
  213. </el-form-item>
  214. </el-col>
  215. <el-col :span="8">
  216. <el-form-item label="业务员信息">
  217. <el-input v-model="form.salesman" placeholder="请输入业务员信息,手机号查找"></el-input>
  218. </el-form-item>
  219. </el-col>
  220. <el-col :span="8">
  221. <el-form-item label="业务员归属">
  222. <el-cascader
  223. clearable
  224. style="width: 100%"
  225. v-model="form.salesmanCompany"
  226. :options="option"
  227. :props="tableProps"
  228. />
  229. </el-form-item>
  230. </el-col>
  231. <el-col :span="8">
  232. <el-form-item label="保险公司">
  233. <el-select v-model="form.companyName" placeholder="请选择">
  234. <el-option label="公司1" value="1" key="1"></el-option>
  235. </el-select>
  236. </el-form-item>
  237. </el-col>
  238. <el-col :span="8">
  239. <el-form-item label="车牌号">
  240. <el-input v-model="form.licenseNo" placeholder="输入车牌号"></el-input>
  241. </el-form-item>
  242. </el-col>
  243. <el-col :span="8">
  244. <el-form-item label="录单时间">
  245. <el-date-picker
  246. v-model="form.recordingTime"
  247. type="daterange"
  248. range-separator="至"
  249. start-placeholder="开始时间"
  250. end-placeholder="结束时间"
  251. format="YYYY-MM-DD"
  252. value-format="YYYY-MM-DD"
  253. @change="timeChange"
  254. />
  255. </el-form-item>
  256. </el-col>
  257. <el-col :span="24" style="display: flex; justify-content: flex-end">
  258. <el-button type="primary" @click="search">查询</el-button>
  259. <el-button plain type="primary" @click="reset">重置</el-button>
  260. </el-col>
  261. </el-row>
  262. </el-form>
  263. <el-table
  264. :data="tableData"
  265. style="margin-top: 24px"
  266. height="500"
  267. >
  268. <el-table-column label="订单号" prop="a" width="200">
  269. <template #default="scope">
  270. <el-button link type="primary" @click="handleDetail(scope.row)">{{ scope.row.quoteNo }}</el-button>
  271. </template>
  272. </el-table-column >
  273. <el-table-column label="业务员信息" prop="realQuoteUserName" width="120"></el-table-column>
  274. <el-table-column label="业务员归属" prop="salesmanCompany" width="120"></el-table-column>
  275. <el-table-column label="保险公司" prop="companyName" width="120"></el-table-column>
  276. <el-table-column label="车牌号" prop="licenseNo" width="120"></el-table-column>
  277. <el-table-column label="交强险保费" prop="jqPremium" width="120"></el-table-column>
  278. <el-table-column label="车船税" prop="taxPremium" width="120"></el-table-column>
  279. <el-table-column label="商业险保费" prop="syPremium" width="120"></el-table-column>
  280. <el-table-column label="驾意险保费" prop="jyPremium" width="120"></el-table-column>
  281. <el-table-column label="保费总额" prop="sumPremium" width="120"></el-table-column>
  282. <el-table-column label="录单时间" prop="createTime" width="150"></el-table-column>
  283. <el-table-column label="录单人" prop="createBy" width="100"></el-table-column>
  284. <el-table-column label="操作" fixed="right" width="200">
  285. <template #default="scope">
  286. <el-button link type="primary">审核</el-button>
  287. <el-button link type="primary" @click="handleEdit(scope.row)">编辑</el-button>
  288. <el-button link type="primary" @click="handleDel(scope.row)">删除</el-button>
  289. </template>
  290. </el-table-column>
  291. </el-table>
  292. <div class="pagination">
  293. <el-pagination
  294. v-model:current-page="pages"
  295. v-model:page-size="size"
  296. :page-sizes="[10, 20, 30, 40]"
  297. layout="total, sizes, prev, pager, next, jumper"
  298. :total="total"
  299. @size-change="handleSizeChange"
  300. @current-change="handleCurrentChange"
  301. ></el-pagination>
  302. </div>
  303. </el-tab-pane>
  304. </el-tabs>
  305. </div>
  306. </template>
  307. <script setup lang="ts">
  308. import { useRouter } from 'vue-router'
  309. import api from '@/api'
  310. import { ElMessage, ElMessageBox } from "element-plus";
  311. const myRouter = useRouter()
  312. let activeName = ref('first')
  313. let type = ref('first')
  314. const handleClick = (e) => {
  315. pages.value = 1
  316. size.value = 10
  317. reset()
  318. type.value = e.props.name
  319. switch (e.props.name) {
  320. case 'first':
  321. initData(0)
  322. break;
  323. case 'second':
  324. initData(1)
  325. break;
  326. case 'third':
  327. initData(2)
  328. break;
  329. }
  330. }
  331. let form = ref({})
  332. const tableProps = ref({
  333. value: "id",
  334. label: "name",
  335. children: "children",
  336. checkStrictly: true,
  337. });
  338. let option = ref([])
  339. const timeChange = (val) => {
  340. }
  341. // 搜索
  342. const search = () => {
  343. switch (type.value) {
  344. case 'first':
  345. initData(0)
  346. break;
  347. case 'second':
  348. initData(1)
  349. break;
  350. case 'third':
  351. initData(2)
  352. break;
  353. }
  354. }
  355. const reset = () => {
  356. form.value = {}
  357. }
  358. // 列表
  359. let tableData = ref([])
  360. const handleDetail = (row) => {
  361. myRouter.push({
  362. path: '/additionalOrder/order/orderDetail',
  363. query: {
  364. id: row.id
  365. }
  366. })
  367. }
  368. const handleEdit = (row) => {
  369. myRouter.push({
  370. path: '/additionalOrder/additionalOrderIndex',
  371. query: {
  372. id: row.id
  373. }
  374. })
  375. }
  376. const handleDel = (row) => {
  377. ElMessageBox({
  378. title: '提示',
  379. message: '确认要删除当前数据吗?',
  380. confirmButtonText: "确认",
  381. cancelButtonText: "取消",
  382. type: "warning",
  383. center:true
  384. }).then((action) => {
  385. if(action === 'confirm') {
  386. api.additionalApi.deleteById(row.id).then((res: any) => {
  387. if(res.code == 200) {
  388. ElMessage({
  389. message: res.msg,
  390. type: 'success'
  391. })
  392. switch (type.value) {
  393. case 'first':
  394. initData(0)
  395. break;
  396. case 'second':
  397. initData(1)
  398. break;
  399. case 'third':
  400. initData(2)
  401. break;
  402. }
  403. } else {
  404. ElMessage({
  405. message: res.msg,
  406. type: 'warning'
  407. })
  408. }
  409. })
  410. }
  411. })
  412. }
  413. // 分页
  414. let pages = ref(1)
  415. let size = ref(10)
  416. let total = ref(0)
  417. const handleSizeChange = (size) => {
  418. size.value = size
  419. initData(type.value)
  420. }
  421. const handleCurrentChange = (page) => {
  422. pages.value = page
  423. initData(type.value)
  424. }
  425. const initData = (type) => {
  426. api.additionalApi.pageList({
  427. pages: pages.value,
  428. size: size.value,
  429. isTemporarily: 0,
  430. auditStatus: type,
  431. orderNo: form.value.orderNo,
  432. salesman: form.value.salesman,
  433. salesmanCompany: form.value.salesmanCompany,
  434. companyName: form.value.companyName,
  435. licenseNo: form.value.licenseNo,
  436. recordingTime: form.value.recordingTime
  437. }).then((res: any) => {
  438. if(res.code == 200) {
  439. tableData.value = res.data.records
  440. total.value = res.data.total
  441. } else {
  442. ElMessage({
  443. message: res.msg,
  444. type: 'warning'
  445. })
  446. }
  447. })
  448. }
  449. onMounted(() => {
  450. initData(0);
  451. })
  452. </script>
  453. <style scoped lang="scss">
  454. .order{
  455. width: 100%;
  456. height: calc(100vh - 120px);
  457. background: #FFFFFF;
  458. padding: 24px;
  459. overflow-y: auto;
  460. .pagination{
  461. margin-top: 24px;
  462. display: flex;
  463. align-items: center;
  464. justify-content: flex-end;
  465. }
  466. }
  467. </style>