reg-info-audit.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606
  1. <template>
  2. <div v-loading="loading">
  3. <div class="white-box">
  4. <el-tabs v-model="filterStatus" @tab-click="handleFilterStatusClick">
  5. <el-tab-pane label="全部" name="-1" :lazy="true"></el-tab-pane>
  6. <el-tab-pane label="待审核" name="0" :lazy="true"></el-tab-pane>
  7. <el-tab-pane label="审核通过" name="1" :lazy="true"></el-tab-pane>
  8. <el-tab-pane label="审核拒绝" name="3" :lazy="true"></el-tab-pane>
  9. </el-tabs>
  10. <div class="filter-box">
  11. <filter-user :filter-types.sync="filterTypes" @select-value="handleFilterUser"></filter-user>
  12. </div>
  13. <el-table :data="tableData" stripe style="width: 100%;" @selection-change="handleSelectionChange"
  14. :height="tool.getTableHeight(true)">
  15. <el-table-column type="selection" width="55"></el-table-column>
  16. <el-table-column label="审核状态" width="100">
  17. <template slot-scope="scope">
  18. <el-tag :type="tool.statusType(scope.row.AUDIT_STATUS)">{{scope.row.STATUS_NAME}}</el-tag>
  19. </template>
  20. </el-table-column>
  21. <el-table-column label="会员编号" width="150">
  22. <template slot-scope="scope">
  23. <el-tag size="small" class="no-border">{{scope.row.BASE_INFO.USER_NAME}}</el-tag>
  24. </template>
  25. </el-table-column>
  26. <el-table-column label="会员姓名" width="110">
  27. <template slot-scope="scope">
  28. <el-tag type="success" size="small" class="no-border">{{scope.row.BASE_INFO.REAL_NAME}}</el-tag>
  29. </template>
  30. </el-table-column>
  31. <el-table-column label="会员状态" width="110">
  32. <template slot-scope="scope">
  33. {{(scope.row.BASE_INFO.STATUS_NAME)}}
  34. </template>
  35. </el-table-column>
  36. <el-table-column label="会员级别">
  37. <template slot-scope="scope">
  38. {{scope.row.BASE_INFO.DEC_LV_NAME}}
  39. </template>
  40. </el-table-column>
  41. <el-table-column label="聘级">
  42. <template slot-scope="scope">
  43. {{scope.row.BASE_INFO.EMP_LV_NAME}}
  44. </template>
  45. </el-table-column>
  46. <el-table-column label="体系名称" width="150">
  47. <template slot-scope="scope">
  48. {{scope.row.BASE_INFO.SYSTEM_NAME}}
  49. </template>
  50. </el-table-column>
  51. <el-table-column label="提现方式">
  52. <template slot-scope="scope">
  53. {{scope.row.BASE_INFO.IS_AUTO_WITHDRAW?'自动提现':'手动提现'}}
  54. </template>
  55. </el-table-column>
  56. <el-table-column label="手机号码" width="110">
  57. <template slot-scope="scope">
  58. {{scope.row.BASE_INFO.MOBILE}}
  59. </template>
  60. </el-table-column>
  61. <el-table-column label="身份证号" width="170">
  62. <template slot-scope="scope">
  63. {{scope.row.BASE_INFO.ID_CARD}}
  64. </template>
  65. </el-table-column>
  66. <el-table-column label="注册类型" width="120">
  67. <template slot-scope="scope">
  68. <el-tag type="warning" size="small" class="no-border">{{regTypes[scope.row.REG_TYPE].TYPE_NAME}}</el-tag>
  69. </template>
  70. </el-table-column>
  71. <el-table-column label="注册名称" width="160">
  72. <template slot-scope="scope">
  73. {{scope.row.REG_NAME}}
  74. </template>
  75. </el-table-column>
  76. <el-table-column label="统一社会信用代码" width="180">
  77. <template slot-scope="scope">
  78. {{scope.row.CREDIT_CODE}}
  79. </template>
  80. </el-table-column>
  81. <el-table-column label="经营场所" width="180">
  82. <template slot-scope="scope">
  83. {{scope.row.PREMISES}}
  84. </template>
  85. </el-table-column>
  86. <el-table-column label="法人/经营者" width="110">
  87. <template slot-scope="scope">
  88. {{scope.row.LEGAL_PERSON}}
  89. </template>
  90. </el-table-column>
  91. <el-table-column label="注册有效期" width="110">
  92. <template slot-scope="scope">
  93. {{tool.formatDate(scope.row.REG_EXPIRES,false)}}
  94. </template>
  95. </el-table-column>
  96. <el-table-column label="实名认证">
  97. <template slot-scope="scope">
  98. {{scope.row.BASE_INFO.ID_IMAGE?'是':'否'}}
  99. </template>
  100. </el-table-column>
  101. <el-table-column label="创建时间" width="170">
  102. <template slot-scope="scope">
  103. {{tool.formatDate(scope.row.CREATED_AT)}}
  104. </template>
  105. </el-table-column>
  106. <el-table-column label="创建期数" width="160">
  107. <template slot-scope="scope">
  108. {{scope.row.CREATE_PERIOD}}
  109. </template>
  110. </el-table-column>
  111. <el-table-column label="创建人" width="150">
  112. <template slot-scope="scope">
  113. {{scope.row.CREATE_ADMIN_NAME}}
  114. </template>
  115. </el-table-column>
  116. <el-table-column label="审核时间" width="170">
  117. <template slot-scope="scope">
  118. {{tool.formatDate(scope.row.AUDITED_AT)}}
  119. </template>
  120. </el-table-column>
  121. <el-table-column label="审核期数" width="160">
  122. <template slot-scope="scope">
  123. {{scope.row.AUDIT_PERIOD==0?'':scope.row.AUDIT_PERIOD}}
  124. </template>
  125. </el-table-column>
  126. <el-table-column label="审核人" width="150">
  127. <template slot-scope="scope">
  128. {{scope.row.AUDIT_ADMIN_NAME}}
  129. </template>
  130. </el-table-column>
  131. <el-table-column label="备注" width="150">
  132. <template slot-scope="scope">
  133. {{scope.row.CREATE_REMARK}}
  134. </template>
  135. </el-table-column>
  136. <el-table-column fixed="right" label="操作" width="180">
  137. <template slot-scope="scope" v-if="scope.row.AUDIT_STATUS==='0'">
  138. <el-dropdown size="small" trigger="click"
  139. v-show="permission.hasPermission(`user/reg-info-audit-audit`)||permission.hasPermission(`user/reg-info-audit-delete`)">
  140. <el-button type="primary" size="small" @click.stop="">
  141. 操作该数据<i class="el-icon-arrow-down el-icon--right"></i>
  142. </el-button>
  143. <el-dropdown-menu slot="dropdown">
  144. <el-dropdown-item command="edit" @click.native="handleEditShow(scope.row)" v-show="false">修改数据
  145. </el-dropdown-item>
  146. <el-dropdown-item command="audit" @click.native="handleAuditShow(scope.row)"
  147. v-show="permission.hasPermission(`user/reg-info-audit-audit`)">审核数据
  148. </el-dropdown-item>
  149. <el-dropdown-item command="del" @click.native="handleDel(scope.row.ID)"
  150. v-show="permission.hasPermission(`user/reg-info-audit-delete`)">删除数据
  151. </el-dropdown-item>
  152. </el-dropdown-menu>
  153. </el-dropdown>
  154. </template>
  155. </el-table-column>
  156. </el-table>
  157. <div class="white-box-footer">
  158. <el-dropdown size="small" trigger="click" @command="handleMuli" v-if="(filterStatus==='0') && permission.hasPermission(`user/reg-info-audit-delete`)">
  159. <el-button type="primary" size="small">
  160. 所选数据<i class="el-icon-arrow-down el-icon--right"></i>
  161. </el-button>
  162. <el-dropdown-menu slot="dropdown">
  163. <el-dropdown-item command="del" @click.native="handleDel()">批量删除</el-dropdown-item>
  164. </el-dropdown-menu>
  165. </el-dropdown>
  166. <el-button type="primary" size="small" @click="handleAdd" icon="el-icon-plus"
  167. v-show="permission.hasPermission(`user/reg-info-audit-add-opt`)&&(permission.hasPermission(`user/reg-info-audit-add`)||(permission.hasPermission(`user/import-reg-info-to-excel-table`)&&permission.hasPermission(`user/import-reg-info`)))">
  168. 新建会员注册信息
  169. </el-button>
  170. <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
  171. </div>
  172. </div>
  173. <el-dialog title="修改注册信息" :visible.sync="dialogEditFormVisible">
  174. <el-form :model="form" label-width="250px" class="form-dialog" v-loading="dialogEditLoading">
  175. <el-form-item label="会员编号">
  176. <el-input v-model="form.baseInfo.USER_NAME" :disabled="true"></el-input>
  177. </el-form-item>
  178. <el-form-item label="会员姓名">
  179. <el-input v-model="form.baseInfo.REAL_NAME" :disabled="true"></el-input>
  180. </el-form-item>
  181. <el-form-item label="身份证号">
  182. <el-input v-model="form.baseInfo.ID_CARD" :disabled="true"></el-input>
  183. </el-form-item>
  184. <el-form-item label="注册类型">
  185. <el-select v-model="form.type" placeholder="请选择注册类型" @change="changeRegType">
  186. <el-option v-for="(item,key) in regTypes" :label="item.TYPE_NAME" :value="item.ID"
  187. :key="item.ID"></el-option>
  188. </el-select>
  189. </el-form-item>
  190. <el-form-item label="注册名称">
  191. <el-input v-model="form.regName"></el-input>
  192. </el-form-item>
  193. <el-form-item label="统一社会信用代码">
  194. <el-input v-model="form.creditCode"></el-input>
  195. </el-form-item>
  196. <el-form-item label="经营场所">
  197. <el-input v-model="form.premises"></el-input>
  198. </el-form-item>
  199. <el-form-item label="经营者/法人">
  200. <el-input v-model="form.legalPerson"></el-input>
  201. </el-form-item>
  202. <el-form-item label="注册有效期">
  203. <el-date-picker
  204. v-model="form.regExpires"
  205. type="date"
  206. placeholder="选择日期"
  207. value-format="yyyy-MM-dd"
  208. >
  209. </el-date-picker>
  210. </el-form-item>
  211. <el-form-item label="备注">
  212. <el-input v-model="form.createRemark"></el-input>
  213. </el-form-item>
  214. <div v-show="showCompanyBank">
  215. <div class="hr-tip"><span>公司银行信息</span></div>
  216. <el-form-item label="开户行">
  217. <el-select v-model="form.companyBank.openBank" placeholder="请选择开户行">
  218. <el-option v-for="(item,index) in allOpenBank" :key="index" :label="item.BANK_NAME"
  219. :value="item.BANK_CODE"></el-option>
  220. </el-select>
  221. </el-form-item>
  222. <el-form-item label="银行所在地区" prop="bankAreaSelected">
  223. <el-cascader
  224. size="large"
  225. :options="regionData"
  226. v-model="form.companyBank.bankAreaSelected">
  227. </el-cascader>
  228. </el-form-item>
  229. <el-form-item label="开户支行">
  230. <el-input v-model="form.companyBank.bankAddress"></el-input>
  231. </el-form-item>
  232. <el-form-item label="开户名">
  233. <el-input v-model="form.companyBank.openName"></el-input>
  234. </el-form-item>
  235. <el-form-item label="银行账号">
  236. <el-input v-model="form.companyBank.bankNo"></el-input>
  237. </el-form-item>
  238. </div>
  239. </el-form>
  240. <div slot="footer" class="dialog-footer">
  241. <el-button @click="dialogEditFormVisible = false">取 消</el-button>
  242. <el-button type="primary" @click.native="handleEdit">修 改</el-button>
  243. </div>
  244. </el-dialog>
  245. <el-dialog title="审核注册信息" :visible.sync="dialogAuditFormVisible">
  246. <el-form :model="form" label-width="250px" class="form-dialog" v-loading="dialogAuditLoading">
  247. <el-form-item label="会员编号">
  248. <el-input v-model="form.baseInfo.USER_NAME" :disabled="true"></el-input>
  249. </el-form-item>
  250. <el-form-item label="会员姓名">
  251. <el-input v-model="form.baseInfo.REAL_NAME" :disabled="true"></el-input>
  252. </el-form-item>
  253. <el-form-item label="身份证号">
  254. <el-input v-model="form.baseInfo.ID_CARD" :disabled="true"></el-input>
  255. </el-form-item>
  256. <el-form-item label="注册类型">
  257. <el-select v-model="form.type" placeholder="请选择注册类型" @change="changeRegType">
  258. <el-option v-for="(item,key) in regTypes" :label="item.TYPE_NAME" :value="item.ID"
  259. :key="item.ID"></el-option>
  260. </el-select>
  261. </el-form-item>
  262. <el-form-item label="注册名称">
  263. <el-input v-model="form.regName"></el-input>
  264. </el-form-item>
  265. <el-form-item label="统一社会信用代码">
  266. <el-input v-model="form.creditCode"></el-input>
  267. </el-form-item>
  268. <el-form-item label="经营场所">
  269. <el-input v-model="form.premises"></el-input>
  270. </el-form-item>
  271. <el-form-item label="经营者/法人">
  272. <el-input v-model="form.legalPerson"></el-input>
  273. </el-form-item>
  274. <el-form-item label="注册有效期">
  275. <el-date-picker
  276. v-model="form.regExpires"
  277. type="date"
  278. placeholder="选择日期"
  279. value-format="yyyy-MM-dd"
  280. >
  281. </el-date-picker>
  282. </el-form-item>
  283. <el-form-item label="备注">
  284. <el-input v-model="form.createRemark"></el-input>
  285. </el-form-item>
  286. <div v-show="showCompanyBank">
  287. <div class="hr-tip"><span>公司银行信息</span></div>
  288. <el-form-item label="开户行">
  289. <el-select v-model="form.companyBank.openBank" placeholder="请选择开户行">
  290. <el-option v-for="(item,index) in allOpenBank" :key="index" :label="item.BANK_NAME"
  291. :value="item.BANK_CODE"></el-option>
  292. </el-select>
  293. </el-form-item>
  294. <el-form-item label="银行所在地区" prop="bankAreaSelected">
  295. <el-cascader
  296. size="large"
  297. :options="regionData"
  298. v-model="form.companyBank.bankAreaSelected">
  299. </el-cascader>
  300. </el-form-item>
  301. <el-form-item label="开户支行">
  302. <el-input v-model="form.companyBank.bankAddress"></el-input>
  303. </el-form-item>
  304. <el-form-item label="开户名">
  305. <el-input v-model="form.companyBank.openName"></el-input>
  306. </el-form-item>
  307. <el-form-item label="银行账号">
  308. <el-input v-model="form.companyBank.bankNo"></el-input>
  309. </el-form-item>
  310. </div>
  311. </el-form>
  312. <div slot="footer" class="dialog-footer">
  313. <el-button @click="dialogAuditFormVisible = false">取 消</el-button>
  314. <el-button type="danger" @click.native="handleRejectAudit">拒 绝</el-button>
  315. <el-button type="primary" @click.native="handleAudit">通 过</el-button>
  316. </div>
  317. </el-dialog>
  318. </div>
  319. </template>
  320. <script>
  321. import Vue from 'vue'
  322. import network from '@/utils/network'
  323. import tool from '@/utils/tool'
  324. import store from '@/utils/vuexStore'
  325. import FilterUser from '@/components/FilterUser'
  326. import baseInfo from '@/utils/baseInfo'
  327. import permission from '@/utils/permission'
  328. import Pagination from '@/components/Pagination'
  329. import filterHelper from '../../utils/filterHelper'
  330. export default {
  331. name: 'user_reg-info-audit',
  332. components: {FilterUser,Pagination},
  333. mounted() {
  334. store.state.socket.onMessageCallback = this.onMessageCallback
  335. this.getData()
  336. },
  337. data() {
  338. return {
  339. allData: null,
  340. tableData: null,
  341. loading: true,
  342. dialogEditLoading: false,
  343. dialogAuditLoading: false,
  344. multipleSelection: [],
  345. currentPage: 1,
  346. totalPages: 1,
  347. totalCount: 1,
  348. pageSize: 20,
  349. tool: tool,
  350. permission: permission,
  351. filterTypes: {
  352. 'USER_NAME': {isUserTable: true, name: '会员编号'},
  353. 'REAL_NAME': {isUserTable: true, name: '会员姓名'},
  354. 'ID_CARD': {isUserTable: true, name: '身份证'},
  355. 'MOBILE': {isUserTable: true, name: '手机号'},
  356. 'createdAt': {isUserTable: false, name: '创建时间', other: 'date'},
  357. 'regType': {
  358. isUserTable: false,
  359. name: '注册类型',
  360. other: 'select',
  361. selectData: tool.filterSelectFormat(baseInfo.regTypes(), 'ID', 'TYPE_NAME')
  362. },
  363. },
  364. filterModel: {},
  365. dialogEditFormVisible: false,
  366. dialogAuditFormVisible: false,
  367. regTypes: baseInfo.regTypes(),
  368. baseDecLevels: baseInfo.decLevels(),
  369. baseEmpLevels: baseInfo.empLevels(),
  370. auditId: null,
  371. form: {
  372. id: null,
  373. baseInfo: {USER_NAME: null},
  374. type: null,
  375. regName: null,
  376. creditCode: null,
  377. premises: null,
  378. legalPerson: null,
  379. regExpires: null,
  380. auditRemark: null,
  381. createRemark: null,
  382. auditStatus: null,
  383. companyBank: {
  384. openBank: null,
  385. bankAreaSelected: [],
  386. bankAddress: null,
  387. openName: null,
  388. bankNo: null,
  389. }
  390. },
  391. allOpenBank: null,
  392. regionData: store.state.regionInfo.regionData,
  393. showCompanyBank: false,
  394. filterStatus: '0',
  395. }
  396. },
  397. methods: {
  398. handleMuli(command) {
  399. if (this.multipleSelection.length < 1) {
  400. this.$message({
  401. message: '请选择要操作的记录',
  402. type: 'warning'
  403. })
  404. return;
  405. }
  406. },
  407. changeRegType() {
  408. //暂写死
  409. if (this.form.type === '758BF69C25C3422AA7743936BC77EE64') {
  410. this.showCompanyBank = true
  411. } else {
  412. this.showCompanyBank = false
  413. }
  414. },
  415. handleSelectionChange(val) {
  416. this.multipleSelection = val
  417. },
  418. handleCurrentChange(page) {
  419. this.getData(page, this.pageSize)
  420. },
  421. handleSizeChange(pageSize) {
  422. this.getData(this.currentPage, pageSize)
  423. },
  424. handleAdd() {
  425. this.$router.push({path: `/user/reg-info-audit-add-opt`})
  426. },
  427. handleEditShow(row) {
  428. this.dialogEditLoading = true
  429. this.auditId = row.ID
  430. this.dialogEditFormVisible = true
  431. let vueObj = this
  432. network.getData('user/reg-info-audit-get', {id: this.auditId}).then(response => {
  433. vueObj.dialogEditLoading = false
  434. vueObj.form = response.form
  435. vueObj.allOpenBank = response.allOpenBank
  436. vueObj.changeRegType()
  437. })
  438. },
  439. handleEdit() {
  440. this.dialogEditFormVisible = false
  441. this.$message({
  442. message: '正在修改数据',
  443. type: 'info'
  444. })
  445. let path = 'user/reg-info-audit-edit'
  446. network.postData(path, this.form).then(response => {
  447. this.$message({
  448. message: response,
  449. type: 'success'
  450. })
  451. this.getData(this.currentPage, this.pageSize)
  452. }).catch(response => {
  453. })
  454. },
  455. handleAuditShow(row) {
  456. this.dialogAuditLoading = true
  457. this.auditId = row.ID
  458. this.dialogAuditFormVisible = true
  459. let vueObj = this
  460. network.getData('user/reg-info-audit-get', {id: this.auditId}).then(response => {
  461. vueObj.dialogAuditLoading = false
  462. vueObj.form = response.form
  463. vueObj.allOpenBank = response.allOpenBank
  464. vueObj.changeRegType()
  465. })
  466. },
  467. handleAudit() {
  468. this.$confirm(`确定要通过审核?`, '提示', {
  469. confirmButtonText: '确定',
  470. cancelButtonText: '取消',
  471. type: 'warning'
  472. }).then(() => {
  473. this._handleAudit()
  474. }).catch(() => {
  475. return false
  476. })
  477. },
  478. _handleAudit() {
  479. this.dialogAuditFormVisible = false
  480. this.$message({
  481. message: '正在通过审核',
  482. type: 'info'
  483. })
  484. this.form.auditStatus = 'true'
  485. let path = 'user/reg-info-audit-audit'
  486. network.postData(path, this.form).then(response => {
  487. this.$message({
  488. message: response,
  489. type: 'success'
  490. })
  491. this.getData(this.currentPage, this.pageSize)
  492. }).catch(response => {
  493. })
  494. },
  495. handleRejectAudit() {
  496. this.$confirm(`确定要拒绝审核?`, '提示', {
  497. confirmButtonText: '确定',
  498. cancelButtonText: '取消',
  499. type: 'warning'
  500. }).then(() => {
  501. this._handleRejectAudit()
  502. }).catch(() => {
  503. return false
  504. })
  505. },
  506. _handleRejectAudit() {
  507. this.dialogAuditFormVisible = false
  508. this.$message({
  509. message: '正在拒绝审核',
  510. type: 'info'
  511. })
  512. this.form.auditStatus = 'reject'
  513. let path = 'user/reg-info-audit-audit'
  514. network.postData(path, this.form).then(response => {
  515. this.$message({
  516. message: response,
  517. type: 'success'
  518. })
  519. this.getData(this.currentPage, this.pageSize)
  520. }).catch(response => {
  521. })
  522. },
  523. handleDel(id = null) {
  524. let obj = this
  525. this.$confirm('确定删除选定的数据?', '提示', {
  526. confirmButtonText: '确定',
  527. cancelButtonText: '取消',
  528. type: 'warning'
  529. }).then(() => {
  530. let selectedIds = []
  531. if (id === null) {
  532. for (let val of obj.multipleSelection) {
  533. selectedIds.push(val.ID)
  534. }
  535. } else {
  536. selectedIds.push(id)
  537. }
  538. return network.postData(`user/reg-info-audit-delete`, {
  539. selected: selectedIds
  540. })
  541. }).then(response => {
  542. this.$message({
  543. message: response,
  544. type: 'success'
  545. })
  546. obj.getData(obj.currentPage, obj.pageSize)
  547. }).catch(response => {
  548. })
  549. },
  550. handleFilterStatusClick(tab, event) {
  551. this.getData()
  552. },
  553. handleFilterUser(filterData) {
  554. filterHelper.handleFilterUser(this, filterData)
  555. },
  556. handleFilter() {
  557. this.getData()
  558. },
  559. getData(page, pageSize) {
  560. let filterData = this.filterModel
  561. filterData.filterStatus = this.filterStatus != '-1' ? `=,${this.filterStatus}` : ''
  562. let vueObj = this
  563. network.getPageData(this, 'user/reg-info-audit', page, pageSize, filterData, function (response) {
  564. vueObj.allData = response
  565. })
  566. },
  567. onMessageCallback() {
  568. this.getData(this.currentPage, this.pageSize)
  569. },
  570. }
  571. }
  572. </script>
  573. <style scoped>
  574. .hr-tip {
  575. font-size: 12px;
  576. position: relative;
  577. text-align: center;
  578. height: 30px;
  579. line-height: 30px;
  580. color: #999;
  581. margin-bottom: 20px;
  582. }
  583. .hr-tip:before {
  584. content: '';
  585. display: block;
  586. position: absolute;
  587. left: 0;
  588. right: 0;
  589. top: 14px;
  590. border-bottom: 1px dashed #ddd;
  591. height: 1px;
  592. }
  593. .hr-tip span {
  594. display: inline-block;
  595. background: #fff;
  596. position: relative;
  597. padding: 0 10px;
  598. }
  599. </style>