identityExamine.vue 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104
  1. // 司机身份审核
  2. <template>
  3. <div class="center">
  4. <div class="center_css">
  5. <div class="top_css">
  6. <el-row>
  7. <el-col :span="14" style="height: 45px">
  8. <el-button type="primary" @click="sendInfoClick">批量发送消息</el-button>
  9. </el-col>
  10. <el-col :span="10">
  11. <div class="screen">
  12. <el-input class='find' placeholder="可按司机姓名、账号、身份证号查找" @keyup.enter.native="find" v-model="searchkeyWord" clearable @change="find"></el-input>
  13. <el-button class="search" @click="find"><img width="16" height="16" style="margin-left: -8px"
  14. src="../../../public/img/sousuo.png" /></el-button><span
  15. class="count_css">共{{ deptBudgetTotal }}条</span>
  16. </div>
  17. </el-col>
  18. </el-row>
  19. <el-row>
  20. <el-col>
  21. <div class="search_btn">
  22. <div :class="search == '' ? 'search' : 'searchNo'" class="search_item search_block"
  23. @click="searchBtn('')">
  24. 全部
  25. </div>
  26. <div :class="search == 1 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(1)">
  27. 待审核
  28. </div>
  29. <div :class="search == 2 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(2)">
  30. 已通过
  31. </div>
  32. <div :class="search == 3 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(3)">
  33. 已驳回
  34. </div>
  35. <div :class="search == 4 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(4)">
  36. 已过期
  37. </div>
  38. <div :class="search == 7 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(7)">
  39. 未认证
  40. </div>
  41. <div :class="search == 5 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(5)">
  42. 已注销
  43. </div>
  44. <div :class="search == 6 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(6)">
  45. 已禁用
  46. </div>
  47. <div :class="search == 8 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(8)">
  48. 重点关注
  49. </div>
  50. </div>
  51. </el-col>
  52. </el-row>
  53. </div>
  54. <el-table :data="tableData" style="width: 98%; margin: 0 auto; border-radius: 10px" height="68vh" border highlight-current-row @selection-change="handleSelectionChange">
  55. <el-table-column type="selection" width="55" :selectable="selectInit">
  56. </el-table-column>
  57. <el-table-column type="index" width="60" label="序号" align="center">
  58. <template scope="scope">
  59. <span>{{scope.$index + 1}}</span>
  60. <!-- <span v-else>{{scope.$index}}</span> -->
  61. </template>
  62. </el-table-column>
  63. <el-table-column prop="driverName" label="司机姓名" min-width="90"></el-table-column>
  64. <el-table-column prop="driverPhone" label="账号" min-width="110"></el-table-column>
  65. <el-table-column prop="numberCard" label="身份证号" min-width="165"></el-table-column>
  66. <el-table-column prop="carCaptainName" label="车队长" min-width="165">
  67. <template scope="scope">
  68. <span v-if="scope.row.carCaptainName"> {{scope.row.carCaptainName}}({{scope.row.carCaptainAccountNumber}})</span>
  69. </template>
  70. </el-table-column>
  71. <el-table-column prop="shipmentsNumber" label="承运次数">
  72. <template scope="scope">
  73. {{ scope.row.shipmentsNumber ? scope.row.shipmentsNumber : 0 }}
  74. </template>
  75. </el-table-column>
  76. <el-table-column prop="favorableRate" label="好评率" min-width="90">
  77. <!-- <template slot-scope="scope">
  78. <el-rate v-model="scope.row.count" disabled show-score text-color="#ff9900" score-template="{value}">
  79. </el-rate>
  80. </template> -->
  81. </el-table-column>
  82. <el-table-column min-width="110" prop="complaintsNumber" label="投诉和举报">
  83. <template scope="scope">
  84. <span>{{
  85. scope.row.complaintsNumber ? scope.row.complaintsNumber : 0
  86. }}</span>
  87. <el-divider direction="vertical"></el-divider>
  88. <span>{{
  89. scope.row.reportedNumber ? scope.row.reportedNumber : 0
  90. }}</span>
  91. </template>
  92. </el-table-column>
  93. <el-table-column prop="accumulatedFreight" label="累计收款(元)" min-width="110"></el-table-column>
  94. <el-table-column prop="advancePayment" label="垫付比例(%)" min-width="100">
  95. <template scope="scope">
  96. <div class="input_css">
  97. <div style="text-align: center; margin: 0 auto">
  98. <!-- <span v-if="scope.row.iconShow">{{scope.row.advancePayment ? scope.row.advancePayment : "暂无" }}</span> -->
  99. <el-input placeholder="暂无" v-model="scope.row.advancePayment"></el-input>
  100. </div>
  101. <!-- <img src="../../../public/img/edit.png" alt="" style="width: 20px; height: 20px" v-if="scope.row.iconShow"
  102. @click="editNumber(scope.row)" /> -->
  103. <img src="../../../public/img/yes.png" alt="" style="width: 20px; height: 20px; margin-top: 4px"
  104. @click="editRatio(scope.row)" />
  105. </div>
  106. </template>
  107. </el-table-column>
  108. <el-table-column label="车辆">
  109. <template slot-scope="scope">
  110. <span @click="carLook(scope.row)" class="btn_css">查看</span>
  111. </template>
  112. </el-table-column>
  113. <el-table-column prop="payee" label="账户">
  114. <template slot-scope="scope">
  115. <span @click="account(scope.row)" class="btn_css">查看</span>
  116. </template>
  117. </el-table-column>
  118. <el-table-column prop="payee" label="账单">
  119. <template slot-scope="scope">
  120. <span @click="billLook(scope.row)" class="btn_css">查看</span>
  121. </template>
  122. </el-table-column>
  123. <el-table-column prop="paymentDate" label="附件">
  124. <template slot-scope="scope" style="text-align: center" v-if="scope.row.backStageStatus !='未认证'">
  125. <span class="btn_css" @click="fujianLook(scope.row)">查看</span>
  126. <el-tooltip placement="top" v-if="
  127. scope.row.overdueFlag == 1 ||
  128. scope.row.driverOverdueFlag == 1 ||
  129. scope.row.drivingOverdueFlag == 1 ||
  130. scope.row.trailerOverdueFlag == 1 ||
  131. scope.row.qualificationOverdueFlag == 1 ||
  132. scope.row.operationOverdueFlag == 1 ||
  133. scope.row.trailerOperationOverdueFlag == 1
  134. ">
  135. <div slot="content">
  136. <span v-if="scope.row.overdueFlag == 1">身份证已过有效期<br /></span>
  137. <span v-if="scope.row.driverOverdueFlag == 1">驾驶证已过有效期<br /></span><span
  138. v-if="scope.row.qualificationOverdueFlag == 1">从业资格证已过有效期<br /></span>
  139. </div>
  140. <span style="margin-top: 10px"></span>
  141. <img src="../../../public/img/wenhao.png" alt="" class="ask_css" />
  142. </el-tooltip>
  143. </template>
  144. </el-table-column>
  145. <el-table-column prop="createDate" label="注册日期" min-width="100"></el-table-column>
  146. <el-table-column prop="backStageStatus" label="状态"></el-table-column>
  147. <el-table-column label="操作" min-width="200">
  148. <template slot-scope="scope">
  149. <el-link target="_blank" @click="adopt(scope.row)" type="primary" :underline="false"
  150. :disabled="scope.row.authenticationStatus != '审核中'">通过</el-link>
  151. <el-divider direction="vertical"></el-divider>
  152. <el-link target="_blank" @click="reject(scope.row)" type="primary" :underline="false"
  153. :disabled="scope.row.authenticationStatus != '审核中'">驳回</el-link>
  154. <el-divider direction="vertical"></el-divider>
  155. <el-link target="_blank" @click="newInfo(scope.row)" type="primary" :underline="false"
  156. :disabled="scope.row.authenticationStatus == '审核中'">消息</el-link>
  157. <el-divider direction="vertical"></el-divider>
  158. <el-dropdown>
  159. <span class="btn_css">•••</span>
  160. <el-dropdown-menu slot="dropdown">
  161. <el-dropdown-item :disabled="
  162. scope.row.authenticationStatus == '已禁用' &&
  163. scope.row.authenticationStatus != '审核中'
  164. "><span @click="switchChange(scope.row, '1')">禁用</span>
  165. </el-dropdown-item>
  166. <el-dropdown-item :disabled="
  167. scope.row.authenticationStatus != '已禁用' &&
  168. scope.row.authenticationStatus != '审核中'
  169. "><span @click="switchChange(scope.row, '2')">启用</span>
  170. </el-dropdown-item>
  171. </el-dropdown-menu>
  172. </el-dropdown>
  173. </template>
  174. </el-table-column>
  175. </el-table>
  176. </div>
  177. <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
  178. style="text-align: center; margin-top: 10px" :page-size="deptCircularPage.pageSize"
  179. layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
  180. </el-pagination>
  181. <el-dialog :close-on-click-modal='false' title="车辆信息" :visible.sync="carInfo" width="500px" :before-close="carClose">
  182. <!-- <span v-if="carSee.length == 0">暂无车辆</span> -->
  183. <span v-if='carSee.length>0' class="tips">注:车辆信息不在本页面审核,仅供查看</span>
  184. <div v-if='carSee.length>0'>
  185. <div class="car_css" v-for="(item, index) in carSee" :key="index">
  186. <img :src="item.addressUrl" class="car_item" @click="enlarge(item.addressUrl)" />
  187. <div class="status_css" v-if="item.status == '审核中'" style="color: #2f53eb; background: #cfdbfe">
  188. {{ item.status }}
  189. </div>
  190. <div class="status_css" v-else-if="item.status == '已通过'" style="color: #3ac602; background: #eefaea">
  191. {{ item.status }}
  192. </div>
  193. <div class="status_css" v-else style="color: #f53f3f; background: #ffeff0">
  194. {{ item.status }}
  195. </div>
  196. <div class="carno_css">
  197. {{ item.carNumber }}
  198. </div>
  199. <div class="carborder_css"></div>
  200. </div>
  201. </div>
  202. <div v-else>暂无车辆</div>
  203. </el-dialog>
  204. <el-dialog :close-on-click-modal='false' title="账户信息" :visible.sync="userInfo" width="500px" :before-close="userClose">
  205. <div class="user" v-for="(item, index) in paySee" :key="index">
  206. <div class="name_css">{{ item.payeeName }}</div>
  207. <div class="id_css">{{ item.bankCard }}</div>
  208. <div class="pay_name">{{ item.bankDepositBranch }}</div>
  209. <img :src="item.payeeAddressUrl" class="user_item" @click="enlarge(item.payeeAddressUrl)" />
  210. <div class="border_css"></div>
  211. </div>
  212. <div v-if="paySee.length == 0">暂无账户信息</div>
  213. </el-dialog>
  214. <!-- 账单 -->
  215. <el-dialog :close-on-click-modal='false' title="账单" :visible.sync="billShow" width="500px" :before-close="billClose">
  216. <div style="height: 450px" class="bill_css">
  217. <div class="user" v-for="(item, index) in billInfo" :key="index">
  218. <div class="flex order">
  219. <div class="left">订单编号:{{ item.orderNo }}</div>
  220. <div class="right">{{ item.types }}</div>
  221. </div>
  222. <div class="flex order">
  223. <div class="left">{{ item.updateDate }}</div>
  224. <div class="right">{{ item.amountMoney }} {{item.amountMoney?"元":""}}</div>
  225. </div>
  226. </div>
  227. <div v-show="billInfo.length == 0">暂无账单信息</div>
  228. </div>
  229. </el-dialog>
  230. <el-dialog :close-on-click-modal='false' title="附件" :visible.sync="fujianInfo" width="830px" :before-close="fujianClose">
  231. <div class="file">
  232. <div class="fujian_css">
  233. <div class="fujian_item" :class="count == 1 ? 'file_btn' : ''" @click="btnChange(1)">
  234. 身份证
  235. </div>
  236. <div class="fujian_item" :class="count == 2 ? 'file_btn' : ''" @click="btnChange(2)">
  237. 驾驶证
  238. </div>
  239. <!-- <div class="fujian_item" :class="count == 3 ? 'file_btn' : ''" @click="btnChange(3)">
  240. 行驶证
  241. </div> -->
  242. <div class="fujian_item" :class="count == 4 ? 'file_btn' : ''" @click="btnChange(4)">
  243. 从业资格证
  244. </div>
  245. <!-- <div class="fujian_item" :class="count == 5 ? 'file_btn' : ''" @click="btnChange(5)">
  246. 挂车行驶证
  247. </div>
  248. <div class="fujian_item" :class="count == 6 ? 'file_btn' : ''" @click="btnChange(6)">
  249. 运营证
  250. </div>
  251. <div class="fujian_item" :class="count == 7 ? 'file_btn' : ''" @click="btnChange(7)">
  252. 挂车运营证
  253. </div> -->
  254. </div>
  255. <div class="file_tips">
  256. <span v-if="count == 1">有效期:{{file.cardValidityDate}} </span>
  257. <span v-if="count == 2"> 准驾车型:{{file.quasiDrivingVehicle}} </span>
  258. <span v-if="count == 2"> 发证机关:{{file.lssuingAuthority}} </span>
  259. <span v-if="count == 2"> 有效期:{{file.driverLicenseValidityStartDate}} ~ {{file.driverLicenseValidityDate}} </span>
  260. <span v-if="count == 4"> 从业资格证号:{{file.qualificationCertificateNumber}}</span>
  261. <span v-if="count == 4"> 有效期:{{file.qualificationCertificateValidityDate}}</span>
  262. </div>
  263. <div class="file_img">
  264. <img :src="img[index]" class="img_css" @click="enlarge(img[index])"/>
  265. </div>
  266. <div class="btn">
  267. <el-button style="margin-right: 120px" @click="index = 0"
  268. v-if="count == 1 || count == 2 || count == 3 || count == 5">{{ abilityName }}</el-button>
  269. <el-button @click="index = 1" v-if="count == 1 || count == 2 || count == 3 || count == 5">{{ abilityName1 }}
  270. </el-button>
  271. </div>
  272. </div>
  273. </el-dialog>
  274. <el-dialog :close-on-click-modal='false' title="驳回认证" :visible.sync="rejectInfo" width="400px" :before-close="rejectClose">
  275. <div>
  276. <div><span class="sign">*</span>选择驳回原因</div>
  277. <div class="form_css">
  278. <el-form ref="form" :model="form" label-width="80px">
  279. <el-checkbox-group v-model="checkList">
  280. <el-checkbox label="证件照片不清晰" value="1"></el-checkbox>
  281. <el-checkbox label="证件照片上传错误" value="2"></el-checkbox>
  282. <el-checkbox label="身份信息填写错误" value="3"></el-checkbox>
  283. <el-checkbox label="证件信息填写错误" value="4"></el-checkbox>
  284. <el-checkbox label="其他" value="5"></el-checkbox>
  285. </el-checkbox-group>
  286. <div style="margin: 20px 0">驳回原因描述(选填)</div>
  287. <el-input type="textarea" :rows="3" resize="none" placeholder="输入驳回原因,1-100个字"
  288. v-model="form.rejectReasonDescription" maxlength="100"></el-input>
  289. <div class="form_btn">
  290. <el-button @click="rejectClose">取消</el-button>
  291. <el-button @click="submit" type="primary">确定</el-button>
  292. </div>
  293. </el-form>
  294. </div>
  295. </div>
  296. </el-dialog>
  297. <!-- //消息 -->
  298. <el-dialog title="发送信息" :close-on-click-modal='false' :visible.sync="sendInfo" width="400px" :before-close="sendInfoClose">
  299. <div class="Info_css">
  300. <div class="Info_title">标题</div>
  301. <div class="Info_item">
  302. <el-input placeholder="输入消息标题,不超过4-20个字。" v-model="Info.newsTitle" maxlength="20"></el-input>
  303. </div>
  304. <div class="Info_title">内容</div>
  305. <div class="Info_item">
  306. <el-input type="textarea" :rows="3" resize="none" placeholder="消息内容10-100字" maxlength="100"
  307. v-model="Info.newsContent"></el-input>
  308. </div>
  309. <div class="Info_btn">
  310. <el-button @click="sendInfoClose">取消</el-button>
  311. <el-button @click="submitInfo" type="primary" :loading="btnLoading">确定</el-button>
  312. </div>
  313. </div>
  314. </el-dialog>
  315. <el-dialog title="禁用天数" :close-on-click-modal='false' :visible.sync="forbiddenshow" width="400px" :before-close="forbiddenshowClose">
  316. <el-form ref="form" label-width="80px">
  317. <el-form-item label="禁用天数">
  318. <el-input placeholder="输入禁用天数,当天起算" v-model="disabledDays"></el-input>
  319. </el-form-item>
  320. <div class="form_btn">
  321. <el-button @click="forbiddenshowClose">取消</el-button>
  322. <el-button @click="submitforbidden" type="primary" >确定</el-button>
  323. </div>
  324. </el-form>
  325. </el-dialog>
  326. <el-image-viewer v-if="imgsVisible" :on-close="closeImgViewer" :url-list="srcList" style="z-index:9999" />
  327. </div>
  328. </template>
  329. <script>
  330. import {
  331. getList,
  332. toExamine,
  333. postNews,
  334. billSee,
  335. editInfo,
  336. forbidden,
  337. batchPostNews,
  338. } from "@/api/driverManagement";
  339. export default {
  340. data() {
  341. return {
  342. tableData: [],
  343. //分页
  344. searchkeyWord: "",
  345. currentPage: 1,
  346. pageSize: 10,
  347. deptBudgetTotal: 0,
  348. deptCircularPage: {},
  349. search: "",
  350. addressUrl: [],
  351. disabled: false,
  352. carInfo: false,
  353. userInfo: false,
  354. fujianInfo: false,
  355. rejectInfo: false,
  356. forbiddendata:{},
  357. form: {
  358. id: "",
  359. rejectReasonDescription: "",
  360. },
  361. checkList: [],
  362. carSee: [],
  363. paySee: [],
  364. sendInfo: false,
  365. Info: {},
  366. file: {},
  367. img: [],
  368. index: "0",
  369. count: "1",
  370. abilityName: "身份证人像面",
  371. abilityName1: "身份证国徽面",
  372. billInfo: [], //账单
  373. billShow: false,
  374. // iconShow: true,
  375. //图片预览
  376. srcList: [],
  377. forbiddenshow:false,
  378. imgsVisible: false,
  379. disabledDays:'',
  380. multipleSelection:[],
  381. batchTips:false,//批量发送标识
  382. btnLoading:false
  383. };
  384. },
  385. mounted() {
  386. this.getList();
  387. },
  388. components: {
  389. "el-image-viewer": () =>
  390. import("element-ui/packages/image/src/image-viewer"),
  391. },
  392. methods: {
  393. sendInfoClick(){
  394. this.batchTips = true
  395. this.sendInfo = true;
  396. },
  397. selectInit() {
  398. return true;
  399. },
  400. handleSelectionChange(val) {
  401. this.multipleSelection = val;
  402. },
  403. closeImgViewer() {
  404. this.srcList = []
  405. this.imgsVisible = false;
  406. },
  407. enlarge(url) {
  408. this.imgsVisible = true;
  409. this.srcList.push(url)
  410. },
  411. editNumber(item) {
  412. // // item.iconShow = false
  413. // this.$set(item,"iconShow",false)
  414. for (let i = 0; i < this.tableData.length; i++) {
  415. if (this.tableData[i].id == item.id) {
  416. this.tableData[i].iconShow = false;
  417. this.$set(this.tableData[i], "iconShow", false);
  418. this.$forceUpdate();
  419. this.$forceupdate();
  420. }
  421. }
  422. },
  423. editRatio(val) {
  424. this.$confirm("确定修改该司机的垫付比例?", "提示", {
  425. confirmButtonText: "确定",
  426. cancelButtonText: "取消",
  427. type: "warning",
  428. }).then(() => {
  429. this.listLoading = true;
  430. val.advancePayment = val.advancePayment/100
  431. editInfo(val)
  432. .then((response) => {
  433. if (response.code == 200) {
  434. this.$notify({
  435. title: "成功",
  436. message: "修改成功!",
  437. type: "success",
  438. });
  439. this.getList();
  440. }
  441. })
  442. .catch(() => {
  443. this.listLoading = false;
  444. });
  445. });
  446. },
  447. billLook(val) {
  448. this.listLoading = true;
  449. billSee({
  450. commonId: val.commonId,
  451. })
  452. .then((response) => {
  453. this.billInfo = response.data;
  454. this.listLoading = false;
  455. })
  456. .catch(() => {
  457. this.listLoading = false;
  458. });
  459. this.billShow = true;
  460. },
  461. billClose() {
  462. this.billShow = false;
  463. },
  464. getList() {
  465. this.listLoading = true;
  466. let _obj = {};
  467. _obj.currentPage = this.currentPage;
  468. _obj.pageSize = this.pageSize;
  469. _obj.searchKeyWord = this.searchkeyWord;
  470. _obj.searchType = this.search;
  471. getList(_obj)
  472. .then((response) => {
  473. this.tableData = response.data.records;
  474. for (let i = 0; i < this.tableData.length; i++) {
  475. this.tableData[i].iconShow = true;
  476. if(this.tableData[i].advancePayment){
  477. this.tableData[i].advancePayment*=100
  478. }
  479. }
  480. this.deptBudgetTotal = response.data.total;
  481. this.listLoading = false;
  482. })
  483. .catch(() => {
  484. this.listLoading = false;
  485. });
  486. },
  487. btnChange(num) {
  488. this.count = num;
  489. if (num == 1) {
  490. this.abilityName = "身份证人像面";
  491. this.abilityName1 = "身份证国徽面";
  492. this.img[0] = this.file.cardAddressUrl;
  493. this.img[1] = this.file.cardBackAddressUrl;
  494. } else if (num == 2) {
  495. this.abilityName = "驾驶证主页";
  496. this.abilityName1 = "驾驶证副页";
  497. this.img[0] = this.file.driverLicenseHomePage;
  498. this.img[1] = this.file.driverLicenseBackPage;
  499. } else if (num == 3) {
  500. this.abilityName = "行驶证主页";
  501. this.abilityName1 = "行驶证副页";
  502. this.img[0] = this.file.drivingLicenseHomePage;
  503. this.img[1] = this.file.drivingLicenseBackPage;
  504. } else if (num == 4) {
  505. this.index = 0;
  506. this.img[0] = this.file.qualificationCertificate;
  507. } else if (num == 5) {
  508. this.abilityName = "挂车行驶证主页";
  509. this.abilityName1 = "挂车行驶证副页";
  510. this.img[0] = this.file.trailerLicenseHomePage;
  511. this.img[1] = this.file.trailerLicenseBackPage;
  512. } else if (num == 6) {
  513. this.index = 0;
  514. this.img[0] = this.file.operationCertificate;
  515. } else if (num == 7) {
  516. this.index = 0;
  517. this.img[0] = this.file.trailerOperationCertificate;
  518. }
  519. },
  520. newInfo(row) {
  521. this.Info.newsTypeKey = 1;
  522. this.Info.newsType = "系统消息";
  523. this.Info.crtCommonId = JSON.parse(
  524. localStorage.getItem("UserInfo")
  525. ).accountId;
  526. this.Info.reCommonId = row.commonId;
  527. this.Info.bussId = row.id;
  528. this.sendInfo = true;
  529. },
  530. sendInfoClose() {
  531. this.Info = {};
  532. this.sendInfo = false;
  533. },
  534. forbiddenshowClose(){
  535. this.disabledDays=''
  536. this.forbiddenshow=false
  537. },
  538. submitInfo() {
  539. if (!this.Info.newsTitle) {
  540. this.$message.error("标题不能为空");
  541. return;
  542. }
  543. if (!this.Info.newsContent) {
  544. this.$message.error("消息内容不能为空");
  545. return;
  546. }
  547. if (this.Info.newsTitle.length < 4 || this.Info.newsTitle.length > 20) {
  548. this.$message.error("标题字数应在4-20之间");
  549. return;
  550. }
  551. if (
  552. this.Info.newsContent.length < 10 ||
  553. this.Info.newsContent.length > 100
  554. ) {
  555. this.$message.error("消息内容字数应在10-100之间");
  556. return;
  557. }
  558. this.btnLoading = true
  559. this.listLoading = true;
  560. if(this.batchTips){//批量发送
  561. let arr = []
  562. for(let i = 0;i<this.multipleSelection.length;i++){
  563. arr.push({reCommonId:this.multipleSelection[i].commonId,newsTitle:this.Info.newsTitle,newsContent:this.Info.newsContent})
  564. }
  565. batchPostNews({newsInfoList:arr})
  566. .then((response) => {
  567. this.$notify({
  568. title: "成功",
  569. message: "发送成功!",
  570. type: "success",
  571. });
  572. this.sendInfoClose();
  573. this.batchTips = false
  574. this.btnLoading = false
  575. this.listLoading = false;
  576. })
  577. .catch(() => {
  578. this.listLoading = false;
  579. this.btnLoading = false
  580. });
  581. }else{
  582. postNews(this.Info)
  583. .then((response) => {
  584. this.$notify({
  585. title: "成功",
  586. message: "发送成功!",
  587. type: "success",
  588. });
  589. this.sendInfoClose();
  590. this.btnLoading = false
  591. this.listLoading = false;
  592. })
  593. .catch(() => {
  594. this.listLoading = false;
  595. this.btnLoading = false
  596. });
  597. }
  598. },
  599. switchChange(row, num) {
  600. console.log(1111111)
  601. this.forbiddendata=row
  602. var _examine = {};
  603. _examine.id = row.commonId;
  604. let title;
  605. if (num == 1) {
  606. // _examine.flag = 3;
  607. // title = "禁用后客户将无法使用所有功能,是否确定禁用?";
  608. this.forbiddenshow=true
  609. } else if (num == 2) {
  610. title = "确定重新启用该用户?";
  611. _examine.disableFlag = 2;
  612. _examine.identityFlag = 2;
  613. this.$confirm(title, "提示", {
  614. confirmButtonText: "确定",
  615. cancelButtonText: "取消",
  616. type: "warning",
  617. }).then(() => {
  618. this.listLoading = true;
  619. forbidden(_examine)
  620. .then((response) => {
  621. this.$notify({
  622. title: "成功",
  623. message: "启用成功!",
  624. type: "success",
  625. });
  626. this.getList();
  627. this.listLoading = false;
  628. })
  629. .catch(() => {
  630. this.listLoading = false;
  631. });
  632. });
  633. }
  634. },
  635. submitforbidden(){
  636. if(!this.disabledDays){
  637. this.$message.error("禁用天数不能为空");
  638. return
  639. }if(this.disabledDays<2){
  640. this.$message.error("禁用天数输入错误");
  641. return
  642. }
  643. var _examine={}
  644. _examine.id = this.forbiddendata.commonId
  645. _examine.disableFlag = 1;
  646. _examine.identityFlag = 2;
  647. _examine.disabledDays = this.disabledDays;
  648. this.listLoading = true;
  649. forbidden(_examine)
  650. .then((response) => {
  651. this.$notify({
  652. title: "成功",
  653. message: "禁用成功!",
  654. type: "success",
  655. });
  656. this.forbiddenshow=false
  657. this.getList();
  658. this.listLoading = false;
  659. })
  660. .catch(() => {
  661. this.listLoading = false;
  662. });
  663. },
  664. account(row) {
  665. this.paySee = row.hyDriverPayeeInfoList;
  666. this.userInfo = true;
  667. },
  668. fujianLook(row) {
  669. this.file = row;
  670. this.index = 0;
  671. this.img[0] = this.file.cardAddressUrl;
  672. this.img[1] = this.file.cardBackAddressUrl;
  673. this.fujianInfo = true;
  674. },
  675. userClose() {
  676. this.userInfo = false;
  677. },
  678. fujianClose() {
  679. this.count = 1;
  680. this.fujianInfo = false;
  681. },
  682. carLook(row) {
  683. this.carSee = row.hyDriverCarInfoList;
  684. this.carInfo = true;
  685. },
  686. carClose() {
  687. this.carInfo = false;
  688. },
  689. searchBtn(num) {
  690. this.search = num;
  691. this.getList();
  692. },
  693. find() {
  694. this.currentPage = 1
  695. this.getList();
  696. },
  697. adopt(row) {
  698. this.$confirm("确定通过身份审核?", "提示", {
  699. confirmButtonText: "确定",
  700. cancelButtonText: "取消",
  701. type: "warning",
  702. }).then(() => {
  703. this.listLoading = true;
  704. var _examine = {};
  705. _examine.id = row.id;
  706. _examine.flag = 1;
  707. _examine.numberCard = row.numberCard;
  708. toExamine(_examine)
  709. .then((response) => {
  710. this.$notify({
  711. title: "成功",
  712. message: "通过成功!",
  713. type: "success",
  714. });
  715. this.rejectInfo = false;
  716. this.getList();
  717. this.listLoading = false;
  718. })
  719. .catch(() => {
  720. this.listLoading = false;
  721. });
  722. });
  723. },
  724. submit() {
  725. if (this.checkList.length == 0) {
  726. this.$message.error("请选择驳回原因");
  727. return;
  728. }
  729. this.listLoading = true;
  730. this.form.rejectReason = this.checkList.toString();
  731. // delete this.form.checkList
  732. toExamine(this.form)
  733. .then((response) => {
  734. this.$notify({
  735. title: "成功",
  736. message: "驳回成功!",
  737. type: "success",
  738. });
  739. this.checkList = [];
  740. this.form = {};
  741. this.rejectInfo = false;
  742. this.getList();
  743. this.listLoading = false;
  744. })
  745. .catch(() => {
  746. this.listLoading = false;
  747. });
  748. },
  749. reject(row) {
  750. this.form.id = row.id;
  751. this.form.flag = 2;
  752. this.rejectInfo = true;
  753. },
  754. rejectClose() {
  755. this.checkList = [];
  756. this.form = {};
  757. this.rejectInfo = false;
  758. },
  759. // onChange() {
  760. // this.$refs.upload
  761. // .handleSaveBill()
  762. // .then(async (response) => {
  763. // this.formData.addressUrl = response;
  764. // })
  765. // .catch((res) => {
  766. // EventBus.$emit("error", (JSON.parse(res) || {}).message);
  767. // this.$refs.upload.clearFiles();
  768. // });
  769. // },
  770. handleSizeChange(val) {
  771. console.log(`每页 ${val} 条`);
  772. this.pageSize = val;
  773. this.getList();
  774. },
  775. handleCurrentChange(val) {
  776. this.currentPage = val;
  777. console.log(`当前页: ${val}`);
  778. this.getList();
  779. },
  780. },
  781. };
  782. </script>
  783. <style lang="scss" scoped>
  784. .center {
  785. padding: 10px 20px;
  786. background: #f5f6f7;
  787. min-height: calc(100vh - 50px);
  788. .top_css {
  789. padding: 10px;
  790. .search_btn {
  791. height: 80px;
  792. background: linear-gradient(#fafbfb, #ffffff);
  793. display: flex;
  794. margin-top: 20px;
  795. .search_block {
  796. margin-left: 20px;
  797. }
  798. .search_item {
  799. text-align: center;
  800. font-size: 14px;
  801. font-weight: 600;
  802. line-height: 40px;
  803. width: 112px;
  804. height: 40px;
  805. background: #f7f8f9;
  806. cursor: pointer;
  807. margin-top: 30px;
  808. }
  809. .searchNo {
  810. color: #323233;
  811. }
  812. .search {
  813. color: #2f53eb;
  814. background: #ffffff;
  815. }
  816. }
  817. }
  818. .ask_css {
  819. position: absolute;
  820. margin: 3px 0 0 10px;
  821. }
  822. .center_css {
  823. background: #ffffff;
  824. border-radius: 1px;
  825. margin-top: 10px;
  826. padding-bottom: 10px;
  827. }
  828. .screen {
  829. // float: right;
  830. display: flex;
  831. .search {
  832. width: 40px;
  833. height: 40px;
  834. background: #2f53eb;
  835. border-radius: 0px 2px 2px 0px;
  836. border: 1px solid #DCDFE6;
  837. margin-left:-1px;
  838. }
  839. .count_css {
  840. width: 80px;
  841. text-align: center;
  842. line-height: 40px;
  843. color: #666666;
  844. }
  845. }
  846. .el-button {
  847. padding: 10px 20px !important;
  848. }
  849. .center_css {
  850. ::v-deep .el-table th,
  851. ::v-deep .el-table td {
  852. text-align: center;
  853. }
  854. .fujian {
  855. font-size: 24px;
  856. color: #409eff;
  857. }
  858. .warning {
  859. font-size: 14px;
  860. color: #ed1d1d;
  861. }
  862. }
  863. }
  864. .car_css {
  865. width: 50%;
  866. display: inline-block;
  867. text-align: center;
  868. margin-top: 30px;
  869. position: relative;
  870. .status_css {
  871. background: #3ac602;
  872. width: 50px;
  873. height: 17px;
  874. position: absolute;
  875. top: 0px;
  876. right: 15px;
  877. border-radius: 3px;
  878. }
  879. .carno_css {
  880. padding: 1px 5px;
  881. background-color: #f5f6f7;
  882. color: #666666;
  883. border-radius: 12px;
  884. text-align: center;
  885. width: 100px;
  886. margin: 10px auto 0;
  887. }
  888. .carborder_css {
  889. border: 1px solid #f0f1f2;
  890. margin: 15px auto 0;
  891. width: 90%;
  892. }
  893. }
  894. .tips {
  895. color: #999999;
  896. font-size: 14px;
  897. }
  898. .car_item {
  899. width: 200px;
  900. height: 160px;
  901. border-radius: 5px;
  902. }
  903. .user {
  904. margin-bottom: 20px;
  905. .id_css {
  906. font-size: 14px;
  907. }
  908. .id_css,
  909. .name_css {
  910. margin: 5px 0;
  911. color: #0d0d0d;
  912. }
  913. .pay_name {
  914. color: #9d9d9d;
  915. font-size: 14px;
  916. }
  917. .name_css {
  918. font-size: 16px;
  919. }
  920. .user_item {
  921. margin: 25px 0;
  922. width: 450px;
  923. height: 300px;
  924. }
  925. .border_css {
  926. width: 100%;
  927. border: 1px solid #f0f1f2;
  928. }
  929. .order{
  930. margin-top: 8px;
  931. display: flex;
  932. .left,.right{
  933. width: 50%;
  934. }
  935. .right{
  936. text-align: right;
  937. margin-right: 20px;
  938. }
  939. }
  940. }
  941. ::v-deep .el-table--border .el-table__header th {
  942. background: #f7f8f9;
  943. }
  944. .btn_css {
  945. color: #409eff;
  946. cursor: pointer;
  947. }
  948. .btn_css1 {
  949. margin-left: -20px;
  950. }
  951. .sign {
  952. font-size: 14px;
  953. color: red;
  954. }
  955. .form_css {
  956. width: 100%;
  957. margin: 20px auto 20px;
  958. ::v-deep .el-checkbox {
  959. width: 40%;
  960. height: 30px;
  961. }
  962. // ::v-deep .el-dialog__body{
  963. // padding: 10px 20px;
  964. // }
  965. ::v-deep .el-dialog__title {
  966. font-size: 16px;
  967. }
  968. // ::v-deep .el-textarea__inner {
  969. // background: #f0f1f2;
  970. // }
  971. .form_btn {
  972. text-align: right;
  973. margin-top: 10px;
  974. }
  975. }
  976. //发送信息
  977. .Info_css {
  978. .Info_title {
  979. color: #323233;
  980. font-size: 16px;
  981. }
  982. .Info_item {
  983. margin: 20px 0;
  984. }
  985. .Info_btn {
  986. text-align: right;
  987. margin-top: 10px;
  988. }
  989. }
  990. //附件
  991. .file {
  992. .fujian_css {
  993. width: 270px;
  994. display: flex;
  995. margin: 0 auto;
  996. text-align: center;
  997. line-height: 32px;
  998. border: 1px solid #f0f1f2;
  999. border-right: 0px;
  1000. border-radius: 2px 0px 0px 2px;
  1001. .fujian_item {
  1002. cursor: pointer;
  1003. width: 90px;
  1004. height: 32px;
  1005. border-right: 1px solid #f0f1f2;
  1006. }
  1007. .file_btn {
  1008. color: #2f53eb;
  1009. background-color: #cfdbfe;
  1010. }
  1011. }
  1012. .file_tips{
  1013. margin: 10px auto;
  1014. // width: 50%;
  1015. text-align:center;
  1016. }
  1017. .file_img {
  1018. width: 525px;
  1019. height: 332px;
  1020. margin: 20px auto;
  1021. }
  1022. .img_css {
  1023. width: 525px;
  1024. height: 332px;
  1025. }
  1026. .btn {
  1027. width: 410px;
  1028. margin: 0 auto;
  1029. }
  1030. }
  1031. .bill_css {
  1032. height: 500px;
  1033. overflow-y: scroll;
  1034. }
  1035. .input_css {
  1036. display: flex;
  1037. text-align: center;
  1038. margin: 0 auto;
  1039. width: 100%;
  1040. }
  1041. ::v-deep .input_css .el-input__inner {
  1042. height: 30px;
  1043. }
  1044. .find::v-deep input.el-input__inner{
  1045. border-radius:0;
  1046. }
  1047. // .tupian{
  1048. // width: 100%;
  1049. // height: 100%;
  1050. // position: absolute;
  1051. // }
  1052. </style>