index.vue 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018
  1. <template>
  2. <div class="app-container">
  3. <!-- <div class="nhgel"></div> -->
  4. <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="88px" class="nghfs">
  5. <p class="lqw" style="font-weight: 700;font-size: 15px;"> <img src="../../../assets/images/icon_yq_htgl_btzs.png" alt="" style="width:10px;height: 10px;margin-right: 10px;"> 搜索条件</p>
  6. <el-row>
  7. <el-col :span="24">
  8. <el-col :span="7">
  9. <el-form-item label="联系人" prop="visitName">
  10. <el-input
  11. v-model="queryParams.visitName"
  12. placeholder="请输入联系人"
  13. clearable
  14. @keyup.enter.native="handleQuery"
  15. />
  16. </el-form-item>
  17. </el-col>
  18. <el-col :span="7">
  19. <el-form-item label="联系方式" prop="visitPhone">
  20. <el-input
  21. v-model="queryParams.visitPhone"
  22. placeholder="请输入联系方式"
  23. clearable
  24. @keyup.enter.native="handleQuery"
  25. />
  26. </el-form-item>
  27. </el-col>
  28. <el-col :span="7">
  29. <el-form-item label="出入日期" prop="endTime">
  30. <el-date-picker style="width:220px;" clearable
  31. v-model="queryParams.visitDate"
  32. type="date"
  33. value-format="yyyy-MM-dd"
  34. placeholder="请选择出入日期">
  35. </el-date-picker>
  36. </el-form-item>
  37. </el-col>
  38. <el-col :span="3">
  39. <el-button type="primary" style="background-color: #5974E0; border-color: #5974E0;" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  40. </el-col>
  41. </el-col>
  42. <el-col :span="24">
  43. <el-col :span="7">
  44. <el-form-item label="单位名称" prop="visitUnitName">
  45. <el-input
  46. v-model="queryParams.visitUnitName"
  47. placeholder="请输入单位名称"
  48. clearable
  49. @keyup.enter.native="handleQuery"
  50. />
  51. </el-form-item>
  52. </el-col>
  53. <el-col :span="7">
  54. <el-form-item label="来访地点" prop="appointmentSite">
  55. <el-select clearable v-model="queryParams.appointmentSite" placeholder="请选择来访地点" >
  56. <el-option
  57. v-for="dict in dict.type.jluly"
  58. :key="dict.value"
  59. :label="dict.label"
  60. :value="dict.value"
  61. />
  62. </el-select>
  63. </el-form-item>
  64. </el-col>
  65. <el-col :span="7">
  66. <el-form-item label="来访人数" prop="visitNum">
  67. <el-input
  68. v-model="queryParams.visitNum"
  69. placeholder="请输入来访人数"
  70. clearable
  71. @keyup.enter.native="handleQuery"
  72. />
  73. </el-form-item>
  74. </el-col>
  75. <el-col :span="3">
  76. <el-button style="background-color: #fff; border-color: #3464EB; color: #3464EB;" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  77. </el-col>
  78. </el-col>
  79. </el-row>
  80. <!--
  81. <el-form-item>
  82. </el-form-item> -->
  83. </el-form>
  84. <div class="ntgs">
  85. <el-row :gutter="10" class="mb8">
  86. <div class="iuer">
  87. <div style="display: flex;align-items: center;">
  88. <p class="lqw" style="font-weight: 700;font-size: 15px; margin-bottom: 0;"> <img src="../../../assets/images/icon_yq_htgl_btzs.png" alt="" style="width:10px;height: 10px;margin-right: 10px;"> 预约列表</p>
  89. <el-button
  90. type="primary"
  91. plain
  92. icon="el-icon-plus"
  93. size="mini"
  94. @click="handleAdd"
  95. v-hasPermi="['system:reservat:add']"
  96. >新增</el-button>
  97. <el-button
  98. type="danger"
  99. plain
  100. icon="el-icon-delete"
  101. size="mini"
  102. :disabled="multiple"
  103. @click="handleDelete"
  104. v-hasPermi="['system:reservat:remove']"
  105. >取消</el-button>
  106. <!-- <el-button
  107. type="danger"
  108. plain
  109. icon="el-icon-delete"
  110. size="mini"
  111. :disabled="multiple"
  112. @click="handleDelete"
  113. v-hasPermi="['system:reservat:remove']"
  114. >取消</el-button> -->
  115. <el-button
  116. type="warning"
  117. style="background-color: #5974E0; border-color: #5974E0;"
  118. icon="el-icon-download"
  119. size="mini"
  120. @click="handleExport"
  121. v-hasPermi="['system:reservat:export']"
  122. >导出</el-button>
  123. </div>
  124. <div class="ite">
  125. <p v-for="(item,index) in dict.type.youke" :key="index" :class="kje==index?'actt':''" @click="ilw(item,index)">{{item.label}}</p>
  126. </div>
  127. <!-- -->
  128. </div>
  129. <!-- <el-col :span="1.5">
  130. <el-button
  131. type="primary"
  132. plain
  133. icon="el-icon-plus"
  134. size="mini"
  135. @click="handleAdd"
  136. v-hasPermi="['investigate:table:add']"
  137. >新增</el-button>
  138. </el-col>
  139. <el-col :span="1.5">
  140. <el-button
  141. type="danger"
  142. plain
  143. icon="el-icon-delete"
  144. size="mini"
  145. :disabled="multiple"
  146. @click="handleDelete"
  147. v-hasPermi="['investigate:table:remove']"
  148. >删除</el-button>
  149. </el-col> -->
  150. <!-- <el-col :span="1.5">
  151. <el-button
  152. type="warning"
  153. plain
  154. icon="el-icon-download"
  155. size="mini"
  156. @click="handleExport"
  157. v-hasPermi="['investigate:table:export']"
  158. >导出</el-button>
  159. </el-col> -->
  160. <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
  161. </el-row>
  162. <el-table stripe :max-height="tableMaxHeight" v-loading="loading" :data="postList" @selection-change="handleSelectionChange">
  163. <el-table-column type="selection" width="55" align="center" />
  164. <el-table-column label="联系人" align="center" prop="visitName" width="120" >
  165. <template slot-scope="scope">
  166. <el-tooltip class="item" effect="dark" :content="scope.row.visitName" placement="top">
  167. <p style="white-space: nowrap;
  168. text-overflow: ellipsis;
  169. overflow: hidden;width:100%;">{{ scope.row.visitName}}</p>
  170. </el-tooltip>
  171. </template>
  172. </el-table-column>
  173. <el-table-column label="联系方式" align="center" prop="visitPhone" width="120" >
  174. <template slot-scope="scope">
  175. <el-tooltip class="item" effect="dark" :content="scope.row.visitPhone " placement="top">
  176. <p style="margin: 0; white-space: nowrap;
  177. text-overflow: ellipsis;
  178. overflow: hidden;width:100%;">{{scope.row.visitPhone}} </p>
  179. </el-tooltip>
  180. </template>
  181. </el-table-column>
  182. <el-table-column label="人数" align="center" prop="visitNum" />
  183. <el-table-column label="出入日期" align="center" prop="" width="180" >
  184. <template slot-scope="scope">
  185. <div >
  186. <p style="margin: 0;">{{scope.row.visitDate}}</p>
  187. <p style="margin: 0;">{{scope.row.visitTime}}</p>
  188. </div>
  189. </template>
  190. </el-table-column>
  191. <el-table-column label="来访地点" align="center" prop="appointmentSite" >
  192. <template slot-scope="scope">
  193. <dict-tag :options="dict.type.jluly" :value="scope.row.appointmentSite"/>
  194. </template>
  195. </el-table-column>
  196. <el-table-column label="来访事由" align="center" prop="visitReason" >
  197. <template slot-scope="scope">
  198. <el-tooltip class="item" effect="dark" :content="scope.row.visitReason" placement="top">
  199. <p style="white-space: nowrap;
  200. text-overflow: ellipsis;
  201. overflow: hidden;width:100%;">{{ scope.row.visitReason}}</p>
  202. </el-tooltip>
  203. </template>
  204. </el-table-column>
  205. <el-table-column label="人脸图片" align="center" prop="humanFaceData" >
  206. <template slot-scope="scope">
  207. <image-preview :src="scope.row.humanFaceData" :width="50" :height="50"/>
  208. </template>
  209. </el-table-column>
  210. <el-table-column label="审核状态" align="center" prop="visitType" >
  211. <template slot-scope="scope">
  212. <dict-tag :options="dict.type.youke" :value="scope.row.visitType"/>
  213. </template>
  214. </el-table-column>
  215. <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160">
  216. <template slot-scope="scope">
  217. <el-button
  218. size="mini"
  219. type="text"
  220. class="hyr"
  221. @click="getPass(scope.row)"
  222. v-if=" (scope.row.visitType == 1) "
  223. v-hasPermi="['system:reservat:sh']"
  224. >审核</el-button>
  225. <el-button
  226. size="mini"
  227. type="text"
  228. class="hyr"
  229. @click="infoBtn(scope.row)"
  230. v-if="scope.row.visitType == 1"
  231. v-hasPermi="['system:reservat:sh']"
  232. >拒绝</el-button>
  233. <!-- <el-button
  234. size="mini"
  235. type="text"
  236. class="hyr"
  237. @click="nhgeo(scope.row)"
  238. style="color: #00B034;"
  239. v-if="(scope.row.reservatType != 2) && scope.row.visitType == 1"
  240. v-hasPermi="['system:reservat:query']"
  241. >设置接待</el-button> -->
  242. <!-- <el-button
  243. type="text"
  244. size="mini"
  245. class="hyr"
  246. @click="handleDeletehx(scope.row)"
  247. v-hasPermi="['system:reservat:hx']"
  248. v-if="scope.row.visitStatus == 1"
  249. >核销</el-button> -->
  250. <el-button
  251. size="mini"
  252. type="text"
  253. class="hyr"
  254. @click="handleDelete(scope.row)"
  255. style="color: #FF0000;"
  256. v-hasPermi="['system:reservat:remove']"
  257. >删除</el-button>
  258. <el-button
  259. size="mini"
  260. type="text"
  261. class="hyr"
  262. @click="handleDeleteh(scope.row)"
  263. style="color: #00B034;"
  264. v-hasPermi="['system:reservat:query']"
  265. >查看</el-button>
  266. <!-- <el-button
  267. size="mini"
  268. type="text"
  269. icon="el-icon-edit"
  270. @click="erw(scope.row)"
  271. v-hasPermi="['investigate:table:edit']"
  272. >二维码</el-button> -->
  273. </template>
  274. </el-table-column>
  275. </el-table>
  276. <pagination
  277. v-show="total>0"
  278. :total="total"
  279. :page.sync="queryParams.pageNum"
  280. :limit.sync="queryParams.pageSize"
  281. @pagination="getList"
  282. />
  283. </div>
  284. <!-- 添加或修改岗位对话框 -->
  285. <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
  286. <el-form ref="form" :model="form" :rules="rules" label-width="100px">
  287. <el-row>
  288. <el-col :span="24">
  289. <el-form-item label="接待人员" prop="receptionId">
  290. <el-select style="width:100%;" v-model="form.receptionId" placeholder="请选择">
  291. <el-option
  292. v-for="item in ksjegsg"
  293. :key="item.receptionId"
  294. :label="item.receptionName"
  295. :value="item.receptionId"
  296. @click.native="nhgwel(item)"
  297. >
  298. </el-option>
  299. </el-select>
  300. </el-form-item>
  301. </el-col>
  302. </el-row>
  303. </el-form>
  304. <div slot="footer" class="dialog-footer">
  305. <el-button type="primary" @click="submitForm">确 定</el-button>
  306. <el-button @click="cancel">取 消</el-button>
  307. </div>
  308. </el-dialog>
  309. <el-dialog :title="titles" :visible.sync="opens" width="1000px" append-to-body>
  310. <el-form ref="forms" :model="forms" :rules="ruless" label-width="120px">
  311. <el-row>
  312. <el-col :span="8">
  313. <el-form-item label="人数" prop="visitNum">
  314. <el-input type="number" v-model="forms.visitNum" placeholder="请输入人数" />
  315. </el-form-item>
  316. </el-col>
  317. <el-col :span="8">
  318. <el-form-item label="联系人" prop="visitName">
  319. <el-input v-model="forms.visitName" placeholder="请输入联系人" />
  320. </el-form-item>
  321. </el-col>
  322. <el-col :span="8">
  323. <el-form-item label="联系方式" prop="visitPhone">
  324. <el-input v-model="forms.visitPhone" placeholder="请输入联系方式" />
  325. </el-form-item>
  326. </el-col>
  327. <el-col :span="8">
  328. <el-form-item label="出入日期" prop="visitDate">
  329. <el-date-picker style="width:100%" clearable
  330. v-model="forms.visitDate"
  331. type="date"
  332. value-format="yyyy-MM-dd"
  333. placeholder="请选择出入日期">
  334. </el-date-picker>
  335. </el-form-item>
  336. </el-col>
  337. <el-col :span="8">
  338. <el-form-item label="出入时间" prop="visitTime">
  339. <el-time-picker v-model="forms.visitTime" value-format="HH:mm:ss" format="HH:mm:ss" style="width:100%" size="mini" placeholder="时间" />
  340. </el-form-item>
  341. </el-col>
  342. <el-col :span="8">
  343. <el-form-item label="来访地点" prop="appointmentSite">
  344. <el-select v-model="forms.appointmentSite" placeholder="请选择记录来源" >
  345. <el-option
  346. v-for="dict in dict.type.jluly"
  347. :key="dict.value"
  348. :label="dict.label"
  349. :value="dict.value"
  350. />
  351. </el-select>
  352. </el-form-item>
  353. </el-col>
  354. <el-col :span="24">
  355. <el-col :span="8">
  356. <el-form-item label="来访事由" prop="visitReason">
  357. <el-input v-model="forms.visitReason" placeholder="请输入来访事由" />
  358. </el-form-item>
  359. </el-col>
  360. <el-col :span="8">
  361. <el-form-item label="补充事由" prop="visitRemark">
  362. <el-input v-model="forms.visitRemark" placeholder="请输入补充事由" />
  363. </el-form-item>
  364. </el-col>
  365. </el-col>
  366. <el-col :span="24" class="enlad">
  367. <el-form-item label="人脸图片" prop="humanFaceData">
  368. <image-upload :limit="1" v-model="forms.humanFaceData"/>
  369. </el-form-item>
  370. </el-col>
  371. </el-row>
  372. </el-form>
  373. <div slot="footer" class="dialog-footer">
  374. <el-button type="primary" @click="submitForms">确 定</el-button>
  375. <el-button @click="cancel">取 消</el-button>
  376. </div>
  377. </el-dialog>
  378. <el-dialog title="页面二维码" :visible.sync="opent" width="200px" style="padding: 0;" class="nhgrls" append-to-body>
  379. <div v-show="opent" style="display: flex;justify-content: center;align-items: center;">
  380. <!-- <span>{{'https://qszdh.qs163.cn/pages/index/index?id=' + this.bg}}</span> -->
  381. <vue-qr :text="'https://qszdh.qs163.cn/pages/index/index?id=' + this.bg" :size="200"></vue-qr>
  382. </div>
  383. </el-dialog>
  384. </div>
  385. </template>
  386. <script>
  387. import { listPost, getPost, delPost, addPost, updatePost,updateFs,updateGx } from "@/api/kaoch/renyuan";
  388. import { listReservat, listReservatd, getReservat, delReservat, addReservat, updateReservat,setPass,delReservathx } from "@/api/tongj/reservat";
  389. import vueQr from "vue-qr";
  390. export default {
  391. name: "Post",
  392. dicts: ['sys_normal_disable','sys_yes_no','fange','jluly','youke'],
  393. components: {
  394. vueQr,
  395. },
  396. data() {
  397. return {
  398. // 遮罩层
  399. loading: true,
  400. opent:false,
  401. bg:null,
  402. titles:'',
  403. opens:false,
  404. imageUrl:'@/assets/logo/logo.png',
  405. printObj: {
  406. id: "nhgrew", // 这里是要打印元素的ID
  407. popTitle: "", // 打印的标题
  408. },
  409. pickerOptions:{
  410. disabledDate (time) {
  411. //disabledDate 文档上:设置禁用状态,参数为当前日期,要求返回 Boolean
  412. // return time.getTime() > Date.now()//选当前时间之前的时间
  413. return time.getTime() < Date.now() - 8.64e7;//选当前时间之后的时间
  414. }
  415. },
  416. // 选中数组
  417. ids: [],
  418. // 非单个禁用
  419. single: true,
  420. checkedScoreDataDetails: [],
  421. scoreDataDetailsList:[],
  422. // 非多个禁用
  423. multiple: true,
  424. // 显示搜索条件
  425. showSearch: true,
  426. // 总条数
  427. total: 0,
  428. // 岗位表格数据
  429. postList: [],
  430. // 弹出层标题
  431. title: "",
  432. // 是否显示弹出层
  433. open: false,
  434. // 查询参数
  435. queryParams: {
  436. pageNum: 1,
  437. pageSize: 10,
  438. postCode: undefined,
  439. postName: undefined,
  440. status: undefined,
  441. visitType:undefined
  442. },
  443. // 表单参数
  444. form: {},
  445. // 表单校验
  446. rules: {
  447. receptionId: [
  448. { required: true, message: "不能为空", trigger: "blur" }
  449. ],
  450. },
  451. ruless:{
  452. visitName: [
  453. { required: true, message: "不能为空", trigger: "blur" }
  454. ],
  455. visitPhone: [
  456. { required: true, message: "不能为空", trigger: "blur" }
  457. ],
  458. visitNum: [
  459. { required: true, message: "不能为空", trigger: "blur" }
  460. ],
  461. visitDate: [
  462. { required: true, message: "不能为空", trigger: "blur" }
  463. ],
  464. visitTime: [
  465. { required: true, message: "不能为空", trigger: "blur" }
  466. ],
  467. appointmentSite: [
  468. { required: true, message: "不能为空", trigger: "blur" }
  469. ],
  470. visitReason: [
  471. { required: true, message: "不能为空", trigger: "blur" }
  472. ],
  473. },
  474. forms:{},
  475. tableMaxHeight:'200',
  476. kje:0,
  477. ksjegsg:[]
  478. };
  479. },
  480. created() {
  481. this.getList();
  482. // this.getListh()
  483. window.onresize = () => {
  484. this.changeTableMaxHeight()
  485. }
  486. this.changeTableMaxHeight()
  487. },
  488. mounted() {
  489. window.onresize = () => {
  490. this.changeTableMaxHeight()
  491. }
  492. this.changeTableMaxHeight()
  493. },
  494. methods: {
  495. /** 查询岗位列表 */
  496. getList() {
  497. this.loading = true;
  498. listReservat(this.queryParams).then(response => {
  499. this.postList = response.rows;
  500. // this.postList=[{'nsje':null,'visitPhone':null,'isReception':'Y'}]
  501. this.total = response.total;
  502. this.loading = false;
  503. });
  504. },
  505. getListh() {
  506. this.loading = true;
  507. listReservatd().then(response => {
  508. // this.postList = response.rows;
  509. this.ksjegsg= response.data
  510. // this.total = response.total;
  511. this.loading = false;
  512. });
  513. },
  514. ilw(row,val){
  515. this.kje = val
  516. // console.log(row)
  517. if(row.value == 0){
  518. this.queryParams.visitType = undefined
  519. }else{
  520. this.queryParams.visitType = row.value
  521. }
  522. console.log(this.kje)
  523. this.queryParams.pageNum = 1
  524. this.getList()
  525. },
  526. nhgwel(item){
  527. this.form.receptionId = item.receptionId
  528. this.form.receptionName = item.receptionName
  529. this.form.receptionPhone = item.phonenumber
  530. },
  531. getPass(row) {
  532. const _this = this
  533. this.$confirm('是否审核通过', "提醒", {
  534. confirmButtonText: "确定",
  535. cancelButtonText: "取消",
  536. type: "warning"
  537. }).then(function() {
  538. return setPass({
  539. visitType: 3,
  540. reservatId: row.reservatId,
  541. // xmStatus:row.xmStatus
  542. })
  543. }).then(() => {
  544. _this.getList();
  545. _this.msgSuccess("提交成功");
  546. })
  547. },
  548. infoBtn(row) {
  549. const _this = this
  550. this.$confirm('是否拒绝', "提醒", {
  551. confirmButtonText: "确定",
  552. cancelButtonText: "取消",
  553. type: "warning"
  554. }).then(function() {
  555. return setPass({
  556. visitType: 2,
  557. reservatId: row.reservatId,
  558. // xmStatus:row.xmStatus
  559. })
  560. }).then(() => {
  561. _this.getList();
  562. _this.msgSuccess("提交成功");
  563. })
  564. },
  565. // 取消按钮
  566. cancel() {
  567. this.open = false;
  568. this.opens = false;
  569. this.reset();
  570. },
  571. // 表单重置
  572. reset() {
  573. this.form = {
  574. receptionId:undefined,
  575. receptionPhone:undefined,
  576. humanFaceData:undefined,
  577. // postSort: 0,
  578. // status: "0",
  579. receptionName: undefined
  580. };
  581. this.resetForm("form");
  582. },
  583. /** 搜索按钮操作 */
  584. handleQuery() {
  585. this.queryParams.pageNum = 1;
  586. this.getList();
  587. },
  588. /** 重置按钮操作 */
  589. resetQuery() {
  590. this.resetForm("queryForm");
  591. this.handleQuery();
  592. },
  593. // 多选框选中数据
  594. handleSelectionChange(selection) {
  595. this.ids = selection.map(item => item.reservatId)
  596. this.single = selection.length!=1
  597. this.multiple = !selection.length
  598. },
  599. nhgeo(row){
  600. this.reset();
  601. this.open = true;
  602. this.title = "分配接待人员";
  603. this.form.reservatId = row.reservatId;
  604. this.form.reservatConfigTimeId=row.reservatConfigTimeId;
  605. this.form.visitDate=row.visitDate
  606. },
  607. handleDeleteh(row){
  608. this.$router.push({
  609. path: '/fangke/tongj/bjqs',
  610. query: {
  611. 'id':row.reservatId,
  612. 'name':null,
  613. 'names':null,
  614. 'isxz':1
  615. }
  616. })
  617. },
  618. /** 新增按钮操作 */
  619. handleAdd() {
  620. this.forms = {
  621. visitType:'1'
  622. }
  623. this.opens = true;
  624. this.titles = "添加预约人员";
  625. // this.scoreDataDetailsList = []
  626. // this.$router.push({
  627. // path: '/system/bjq',
  628. // })
  629. // this.$router.push({
  630. // path: '/bjqs',
  631. // query: {
  632. // 'id':null,
  633. // 'name':null,
  634. // 'names':null,
  635. // 'isxz':1
  636. // }
  637. // })
  638. },
  639. /** 修改按钮操作 */
  640. handleUpdate(row) {
  641. this.reset();
  642. // const postId = row.investigateTableId || this.ids
  643. // getPost(postId).then(response => {
  644. // this.form = response.data;
  645. // this.scoreDataDetailsList = this.form.investigateUserList
  646. // this.open = true;
  647. // this.title = "修改考察配置";
  648. // });
  649. // if(this.isfge == true){
  650. //下拉框点击
  651. // this.$router.push({
  652. // path: '/kaochnr/bjq',
  653. // query: {
  654. // 'kcid':val.investigateTableId,
  655. // 'isxz':2
  656. // }
  657. // })
  658. // }else if(this.isfge == false){
  659. // 单机点击
  660. this.$router.push({
  661. path: '/bjqs',
  662. query: {
  663. 'kcid':row.investigateTableId,
  664. 'isxz':2,
  665. 'endTime':row.endTime,
  666. }
  667. })
  668. // }
  669. },
  670. /** 提交按钮 */
  671. submitForm: function() {
  672. this.$refs["form"].validate(valid => {
  673. if (valid) {
  674. // if (this.form.reservatId != null) {
  675. updateReservat(this.form).then(response => {
  676. this.$modal.msgSuccess("操作成功");
  677. this.open = false;
  678. this.getList();
  679. });
  680. // } else {
  681. // addReservat(this.form).then(response => {
  682. // this.$modal.msgSuccess("新增成功");
  683. // this.open = false;
  684. // this.getList();
  685. // });
  686. // }
  687. }
  688. });
  689. },
  690. submitForms: function() {
  691. this.$refs["forms"].validate(valid => {
  692. if (valid) {
  693. // if (this.form.reservatId != null) {
  694. // updateReservat(this.forms).then(response => {
  695. // this.$modal.msgSuccess("操作成功");
  696. // this.open = false;
  697. // this.getList();
  698. // });
  699. // } else {
  700. this.forms.visitTime = this.forms.visitTime + '-' + this.forms.visitTime
  701. addReservat(this.forms).then(response => {
  702. this.$modal.msgSuccess("新增成功");
  703. this.opens = false;
  704. this.getList();
  705. });
  706. // }
  707. }
  708. });
  709. },
  710. nglqw(val){
  711. this.opent = true
  712. this.bg = val.investigateTableId
  713. },
  714. iszheg(event){
  715. console.log(event);
  716. // 校验身份证:
  717. console.log(reg.test(this.form.idCard),23741)
  718. if ( reg.test(this.form.idCard)|| _IDre15.test(this.form.idCard)) {
  719. // this.idea();
  720. this.go(this.form.idCard);
  721. // callback()
  722. } else {
  723. if(ncjsle.test(this.form.idCard) || nhyeli.test(this.form.idCard)){
  724. console.log(3)
  725. }else{
  726. if(gnse.test(this.form.idCard) ){
  727. console.log(4)
  728. }else{
  729. if(tw.test(this.form.idCard) || twe.test(this.form.idCard)){
  730. console.log(5)
  731. }else{
  732. this.$message.error('证件格式不正确');
  733. }
  734. }
  735. }
  736. }
  737. },
  738. erw(row){
  739. this.$router.push({
  740. path: '/reny/ewm',
  741. query:{
  742. 'tenantId':row.investigateTableId
  743. }
  744. })
  745. },
  746. hussar_17Click(val) {
  747. const _this = this
  748. var url =process.env.VUE_APP_BASE_API + 'pages/index/index?id=' + val.investigateTableId;
  749. console.log(url,this.$refs.canvas,6)
  750. this.opent = true
  751. QRCode.toCanvas(
  752. canvas,
  753. url,//生成二维码的数据
  754. {width: 100, height:100, margin: 1.5},//margin调整二维码的白边大小
  755. function (error) {
  756. if (error) {
  757. console.log(error);
  758. }
  759. }
  760. );
  761. // console.log(qrcode,987)
  762. },
  763. /** 成绩_子添加按钮操作 */
  764. handleAddScoreDataDetails() {
  765. let obj = {};
  766. obj.duty = "";
  767. obj.idCard = "";
  768. obj.phonenumber = "";
  769. obj.userName = "";
  770. this.scoreDataDetailsList.push(obj);
  771. console.log(this.scoreDataDetailsList)
  772. },
  773. /** 成绩_子删除按钮操作 */
  774. handleDeleteScoreDataDetails() {
  775. if (this.checkedScoreDataDetails.length == 0) {
  776. this.$modal.msgError("请先选择要删除的数据");
  777. } else {
  778. const scoreDataDetailsList = this.scoreDataDetailsList;
  779. const checkedScoreDataDetails = this.checkedScoreDataDetails;
  780. this.scoreDataDetailsList = scoreDataDetailsList.filter(function(item) {
  781. return checkedScoreDataDetails.indexOf(item.index) == -1
  782. });
  783. }
  784. },
  785. /** 复选框选中数据 */
  786. handleScoreDataDetailsSelectionChange(selection) {
  787. this.checkedScoreDataDetails = selection.map(item => item.index)
  788. },
  789. /** 成绩_子序号 */
  790. rowScoreDataDetailsIndex({ row, rowIndex }) {
  791. row.index = rowIndex + 1;
  792. },
  793. /** 删除按钮操作 */
  794. handleDelete(row) {
  795. const postIds = row.reservatId || this.ids;
  796. delReservat(postIds).then(response => {
  797. this.$modal.msgSuccess("操作成功");
  798. this.getList();
  799. });
  800. // this.$modal.confirm('是否确认删除数据项?').then(function() {
  801. // return delPost(postIds);
  802. // }).then(() => {
  803. // this.getList();
  804. // this.$modal.msgSuccess("删除成功");
  805. // }).catch(() => {});
  806. },
  807. handleDeletehx(row) {
  808. const postIds = row.reservatId || this.ids;
  809. let nhg={}
  810. nhg.reservatId = postIds
  811. delReservathx(nhg).then(response => {
  812. this.$modal.msgSuccess("操作成功");
  813. this.getList();
  814. });
  815. // this.$modal.confirm('是否确认删除数据项?').then(function() {
  816. // return delPost(postIds);
  817. // }).then(() => {
  818. // this.getList();
  819. // this.$modal.msgSuccess("删除成功");
  820. // }).catch(() => {});
  821. },
  822. // 发送短信
  823. handleUpdatefas(row){
  824. updateFs(row).then(response => {
  825. this.$modal.msgSuccess("发送成功");
  826. // this.getList();
  827. });
  828. },
  829. handleDeletegx(row){
  830. updateGx(row).then(response => {
  831. this.$modal.msgSuccess("发送成功");
  832. // this.getList();
  833. });
  834. },
  835. /** 导出按钮操作 */
  836. handleExport() {
  837. this.download('system/reservat/export', {
  838. ...this.queryParams
  839. }, `预约人员.xlsx`)
  840. },
  841. // 获取屏幕高度
  842. showFilterForm () {
  843. this.filterActive = !this.filterActive
  844. this.changeTableMaxHeight()
  845. },
  846. changeTableMaxHeight () {
  847. let height = document.body.offsetHeight // 网页可视区域高度
  848. // if (this.filterActive) {
  849. // this.tableMaxHeight = height - 320
  850. // } else {
  851. this.tableMaxHeight = height - 350
  852. // }
  853. console.log(height)
  854. },
  855. }
  856. };
  857. </script>
  858. <style lang="scss">
  859. .enlad{
  860. .el-upload--picture-card{
  861. height: 80px;
  862. width: 80px;
  863. line-height: 80px;
  864. }
  865. .el-upload-list--picture-card .el-upload-list__item{
  866. height: 80px;
  867. width: 80px;
  868. }
  869. }
  870. .nhgrls{
  871. .el-dialog__body{
  872. padding: 0;
  873. }
  874. }
  875. .hyr{
  876. span{
  877. text-decoration:underline;
  878. }
  879. }
  880. </style>
  881. <style scoped lang="scss">
  882. .iuer{
  883. display: flex;
  884. justify-content: space-between;
  885. align-items: center;
  886. .ite{
  887. display: flex;
  888. justify-content: space-between;
  889. align-items: center;
  890. p{
  891. cursor:pointer;
  892. margin: 0;
  893. font-size: 15px;
  894. font-family: PingFang SC;
  895. font-weight: 500;
  896. color:#666666;
  897. padding: 4px 12px;
  898. background: #Fff;
  899. border-radius: 4px;
  900. margin-right: 20px;
  901. position: relative;
  902. }
  903. .actt{
  904. background: #fff;
  905. // border-bottom: 3px solid #5974E0;
  906. // border-radius: 0;
  907. // border-bottom-right-radius: 4px;
  908. color: #5974E0;
  909. }
  910. .actt{
  911. &::after {
  912. content: "";
  913. width: 40%;
  914. height: 5px;
  915. border-radius: 3px;
  916. transform: translate(-50%);
  917. background-color: #5974E0;
  918. position: absolute;
  919. left: 50%;
  920. bottom:-3px;
  921. }
  922. }
  923. }
  924. }
  925. .lqw{
  926. padding: 0 10px;
  927. margin: 0;
  928. margin-bottom: 20px;
  929. }
  930. .nhgel{
  931. height: 170px;
  932. background-color: #313b61;
  933. width: 100%;
  934. position: absolute;
  935. top:0;
  936. left:0;
  937. z-index: 0;
  938. }
  939. .app-container{
  940. background-color: #f3f4f6;
  941. padding-top: 10px;
  942. }
  943. .ntgs{
  944. position: relative;
  945. background-color: #fff;
  946. padding: 5px;
  947. // border-radius: 5px;
  948. padding-top: 10px;
  949. padding: 10px 20px;
  950. padding-left: 10px;
  951. .pagination-container{
  952. height: 50px;
  953. }
  954. }
  955. .nghfs{
  956. position: relative;
  957. background-color: #fff;
  958. padding-top: 18px !important;
  959. padding: 5px;
  960. // border-radius: 5px;
  961. // margin-bottom: 20px;
  962. }
  963. .ksf{
  964. img{
  965. width:100%;
  966. height: 100%;
  967. }
  968. }
  969. </style>