You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
66 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{"version":3,"sources":["webpack:///src/src/App.vue","webpack:///reset.css","webpack:///global.css","webpack:///src/assets/css/style.scss","webpack:///src/components/searchForm/src/components/searchForm/index.vue","webpack:///src/components/dialog/src/components/dialog/viewsPhoto.vue","webpack:///src/components/table/src/components/table/tableData.vue","webpack:///src/components/dialog/src/components/dialog/Dialog.vue","webpack:///src/components/Drawer/E:/前端/xmf/src/components/Drawer/indexs.vue","webpack:///src/components/Drawer/E:/前端/xmf/src/components/Drawer/card.vue","webpack:///src/components/form/E:/前端/xmf/src/components/form/VueForm.vue","webpack:///src/components/input/src/components/input/from.vue"],"names":[],"mappings":"AA8LA,sBACA,WAAA,CACA,eACA,CACA,2BACA,cACA,CACA,2BACA,cAAA,CACA,cAAA,CACA,QAAA,CACA,OAAA,CACA,WAAA,CACA,YACA,CACA,uBACA,cAAA,CACA,gBAAA,CACA,UAAA,CACA,WACA,CACA,uBACA,UAAA,CACA,cAAA,CACA,gBAAA,CACA,eACA,CACA,wBACA,eAAA,CACA,UAAA,CACA,cAAA,CACA,kBAAA,CACA,iBAAA,CACA,eACA,CACA,qBACA,WAAA,CACA,YAAA,CACA,iBAAA,CACA,eACA,CCtOA,kEAeE,eAAgB,CAChB,QAAS,CACT,SACF,CAEA,eAME,QAAS,CACT,SACF,CAEA,KACE,qBAAyB,CACzB,UAAc,CACd,sCAAyC,CAEzC,eACF,CAEA,YAJE,cAMF,CAEA,MACE,wBACF,CAEA,aAEE,aACF,CAEA,SACE,QAAS,CACT,SACF,CAEA,WACE,QAAS,CACT,iBACF,CAEA,OACE,YACF,CAEA,+BAME,iBAAkB,CAClB,eACF,CAEA,cACE,gBACF,CAEA,GACE,4BAAgC,CAChC,4BAA6B,CAC7B,kBAAmB,CACnB,UAAW,CACX,UAAW,CACX,YAAa,CACb,eACF,CAEA,MAEE,qBAAsB,CACtB,2BAA4B,CAC5B,oBACF,CAEA,WAEE,eACF,CAEA,oDAIE,UACF,CCzGA,EACI,0CACJ,CACA,cACI,0BAA2B,CAE3B,kBAAmB,CACnB,eAAmB,CACnB,iBAAkB,CAClB,wBAAyB,CACzB,qBACJ,CACA,SACI,mBACJ,CAEA,YACI,UAAW,CACX,WAAY,CACZ,gBAAiB,CACjB,+BACJ,CACA,gCACI,cAAe,CACf,oBACJ,CACA,kCACI,cAAe,CACf,oBAEJ,CACA,sBACI,YAAa,CACb,cAAe,CACf,6BAA8B,CAC9B,SAAU,CACV,aACJ,CACA,qCACI,sBACI,SACJ,CACJ,CACA,qCACI,sBACI,SACJ,CACJ,CACA,qCACI,sBACI,SACJ,CACJ,CACA,qCACI,sBACI,SAAU,CACV,aACJ,CACJ,CACA,0BAEI,wBACJ,CACA,mBACI,2BACJ,CACA,aACI,oBACJ,CACA,kCACI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","file":"app.2c6f395d.css","sourcesContent":["<template>\n <div id=\"app\">\n <el-card class=\"box-card\" v-if=\"isShow\">\n <div>\n <span\n style=\"\n top: 10px;\n right: 20px;\n position: absolute;\n fontsize: 20px;\n color: #999999;\n cursor: pointer;\n \"\n @click=\"closeCard\"\n >X</span\n >\n <div>\n <img :src=\"imgSrc\" alt=\"\" />\n </div>\n <div class=\"title\">{{ title }}</div>\n <div class=\"tips\">{{ tips }}</div>\n <div class=\"text\">{{ alertMsg1 }}</div>\n <div class=\"text\">{{ alertMsg2 }}</div>\n <div class=\"text\">{{ alertMsg3 }}</div>\n </div>\n </el-card>\n <router-view v-if=\"isRouterAlive\"></router-view>\n </div>\n</template>\n<script>\nexport default {\n provide() {\n return {\n reload: this.reload\n }\n },\n data() {\n return {\n isRouterAlive: true,\n path: 'wss://test.kaidalai.cn/websocket/web/admin',\n socket: '',\n lockReconnect: false, //是否真正建立连接\n timeout: 40 * 1000, //40秒一次心跳\n timeoutObj: null, //心跳心跳倒计时\n serverTimeoutObj: null, //心跳倒计时\n timeoutnum: null, //断开 重连倒计时\n alertMsg1: '',\n alertMsg2: '',\n alertMsg3: '',\n isShow: false,\n title: '',\n tips: '',\n imgSrc: null\n }\n },\n mounted() {\n // 初始化\n this.init()\n },\n components: {},\n methods: {\n reload() {\n this.isRouterAlive = false\n this.$nextTick(function () {\n this.isRouterAlive = true\n })\n },\n init: function () {\n if (typeof WebSocket === 'undefined') {\n alert('您的浏览器不支持socket')\n } else {\n // 实例化socket\n this.socket = new WebSocket(this.path)\n // 监听socket连接\n this.socket.onopen = this.onopen\n // 监听socket错误信息\n this.socket.onerror = this.error\n // 监听socket消息\n this.socket.onmessage = this.getMessage\n }\n },\n reconnect() {\n //重新连接\n var that = this\n if (that.lockReconnect) {\n return\n }\n that.lockReconnect = true\n //没连接上会一直重连,设置延迟避免请求过多\n that.timeoutnum && clearTimeout(that.timeoutnum)\n that.timeoutnum = setTimeout(function () {\n //新连接\n that.init()\n that.lockReconnect = false\n }, 5000)\n },\n reset() {\n //重置心跳\n var that = this\n //清除时间\n clearTimeout(that.timeoutObj)\n clearTimeout(that.serverTimeoutObj)\n //重启心跳\n that.start()\n },\n start() {\n //开启心跳\n console.log('开启心跳')\n var self = this\n self.timeoutObj && clearTimeout(self.timeoutObj)\n self.serverTimeoutObj && clearTimeout(self.serverTimeoutObj)\n self.timeoutObj = setTimeout(function () {\n //这里发送一个心跳,后端收到后,返回一个心跳消息,\n if (self.socket.readyState == 1) {\n //如果连接正常\n self.socket.send('heartbeat') //这里可以自己跟后端约定\n } else {\n //否则重连\n self.reconnect()\n }\n self.serverTimeoutObj = setTimeout(function () {\n //超时关闭\n self.socket.close()\n }, self.timeout)\n }, self.timeout)\n },\n onopen() {\n console.log('open')\n //开启心跳\n this.start()\n },\n error: function () {\n console.log('连接错误')\n },\n getMessage: function (msg) {\n if (msg.data == '心跳正常') {\n console.log(msg)\n } else {\n console.log(msg)\n //判断不同的报警内容\n if (msg.data.indexOf('未处理工单') != -1) {\n this.title = '工单警报'\n this.tips = '注意:'\n this.imgSrc = require('./assets/images/todoList.png')\n } else {\n this.title = '紧急警报'\n this.tips = '各单位注意:'\n this.imgSrc = require('./assets/images/sos.png')\n }\n var jsonString = msg.data;\n var jsonObject = JSON.parse(jsonString);\n console.log(\"--------------------------------\")\n console.log(msg)\n console.log(jsonString)\n console.log(jsonObject)\n \n if(jsonObject.type===2){\n this.alertMsg1 ='时间:'+jsonObject.time\n this.alertMsg2 = '小区内有设备'+jsonObject.alarmNo+'发生了报警,请物业负责人员尽快前往现场排查故障!'\n this.alertMsg3= ''\n }\n if(jsonObject.type===3){\n this.alertMsg1 ='居住于'+jsonObject.deviceNo+'房的住户'+jsonObject.deviceName+'在app上点击“一键报警”,请尽快联系住户及前往住户家中查看情况。'\n this.alertMsg2 = '住户联系方式:'+jsonObject.alarmNo\n this.alertMsg3= '如未能联系到住户,可择情报警。'\n }\n \n this.isShow = true\n }\n\n this.reset()\n },\n send: function (data) {\n this.socket.send(data)\n },\n close: function () {\n console.log('socket已经关闭')\n this.reconnect()\n },\n closeCard: function () {\n this.isShow = false\n }\n },\n destroyed() {\n // 销毁监听\n this.socket.onclose = this.close\n }\n}\n</script>\n<style scoped>\n#app {\n height: 100%;\n overflow: hidden;\n}\n.clearfix {\n font-size: 20px;\n}\n.box-card {\n z-index: 999999;\n position: fixed;\n left: 35%;\n top: 30%;\n width: 460px;\n height: 400px;\n}\n.text {\n font-size: 18px;\n line-height: 21px;\n color: #333333;\n margin: 15px;\n}\n.tips {\n color: #000000;\n font-size: 18px;\n line-height: 21px;\n margin-top: 15px;\n}\n.title {\n font-weight: 600;\n color: #000000;\n font-size: 22px;\n line-height: 30.6px;\n margin-left: 155px;\n margin-top: 15px;\n}\nimg {\n width: 116px;\n height: 116px;\n margin-left: 145px;\n margin-top: 30px;\n}\n</style>\n","body,\ndl,\ndt,\ndd,\nul,\nol,\nli,\npre,\nform,\nfieldset,\ninput,\np,\nblockquote,\nth,\ntd {\n font-weight: 400;\n margin: 0;\n padding: 0;\n}\n\nh1,\nh2,\nh3,\nh4,\nh4,\nh5 {\n margin: 0;\n padding: 0;\n}\n\nbody {\n background-color: #ffffff;\n color: #666666;\n font-family: Helvetica, Arial, sans-serif;\n font-size: 12px;\n text-align: left;\n}\n\nselect {\n font-size: 12px;\n}\n\ntable {\n border-collapse: collapse;\n}\n\nfieldset,\nimg {\n border: 0 none;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nfieldset p {\n margin: 0;\n padding: 0 0 0 8px;\n}\n\nlegend {\n display: none;\n}\n\naddress,\ncaption,\nem,\nstrong,\nth,\ni {\n font-style: normal;\n font-weight: 400;\n}\n\ntable caption {\n margin-left: -1px;\n}\n\nhr {\n border-bottom: 1px solid #ffffff;\n border-top: 1px solid #e4e4e4;\n border-width: 1px 0;\n clear: both;\n height: 2px;\n margin: 5px 0;\n overflow: hidden;\n}\n\nol,\nul {\n list-style-image: none;\n list-style-position: outside;\n list-style-type: none;\n}\n\ncaption,\nth {\n text-align: left;\n}\n\nq:before,\nq:after,\nblockquote:before,\nblockquote:after {\n content: '';\n}\n","/* 定义main区域组件title样式 */\n* {\n font-family: PingFangSC-Regular, PingFang SC;\n}\n.main-content {\n margin: 20px 20px 80px 20px;\n /* height: 100%; */\n margin-bottom: 80px;\n background: #ffffff;\n border-radius: 4px;\n border: 1px solid #cfd0dd;\n box-sizing: border-box;\n}\n.el-main {\n padding: 0 !important;\n}\n/* title */\n.main-titel {\n width: 100%;\n height: 49px;\n line-height: 49px;\n border-bottom: 1px solid #d8d8d8;\n}\n.input-box .el-form-item__label {\n font-size: 14px;\n color: #999999 !important;\n}\n.dra-content .el-form-item__label {\n font-size: 14px;\n color: #333333 !important;\n /* padding: 0 24px 0 0; */\n}\n.dra-content .el-form {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n width: 90%;\n margin: 0 auto;\n}\n@media screen and (min-width: 1600px) {\n .dra-content .el-form {\n width: 85%;\n }\n}\n@media screen and (min-width: 1800px) {\n .dra-content .el-form {\n width: 80%;\n }\n}\n@media screen and (max-width: 1440px) {\n .dra-content .el-form {\n width: 95%;\n }\n}\n@media screen and (max-width: 1300px) {\n .dra-content .el-form {\n width: 95%;\n margin: 0 auto;\n }\n}\n.el-table td,\n.el-table th {\n font-size: 14px !important;\n}\n.el-table th > .cell {\n padding-left: 10px !important;\n}\n.el-table td {\n color: #333333 !important;\n}\n.el-table-column--selection .cell {\n padding-left: 10px !important;\n}\n.el-table tr th {\n color: #999999 !important;\n}\n.el-table td,\n.el-table th {\n padding: 12px 0;\n padding-left: 16px !important;\n}\n/* 弹出抽屉内table标签左边距 */\n.dra-table {\n padding: 0px 30px 50px 30px;\n}\n.dra-table .el-table--fit {\n border-right: 0;\n border-bottom: 0;\n border: 1px solid #f5f5f6;\n}\n.dra-table .el-table td,\n.el-table th {\n padding-left: 16px !important;\n}\n/* .dra-content>div>.el-form{\n margin: 0 47px;\n} */\n.el-submenu .el-menu-item {\n height: 50px;\n line-height: 50px;\n padding: 0 0px !important;\n padding-left: 29px !important;\n min-width: 200px;\n}\n.el-table--striped .el-table__body tr.el-table__row--striped.current-row td,\n.el-table__body tr.current-row > td {\n background-color: #fff7f2 !important;\n}\n/* tabs标签样式重置 */\n.el-tabs__item.is-active {\n color: #fb4702 !important;\n}\n.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),\n.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),\n.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),\n.el-tabs--top .el-tabs__item.is-top:nth-child(2) {\n padding-left: 15px !important;\n}\n.el-tabs__active-bar {\n position: absolute;\n bottom: 0;\n left: 0;\n height: 2px;\n background-color: #fb4702 !important;\n z-index: 1;\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n list-style: none;\n}\n.el-tabs__item:hover {\n color: #fb4702 !important;\n cursor: pointer;\n}\n\n.el-tabs__item {\n font-size: 12px !important;\n font-weight: 500;\n color: #303133;\n position: relative;\n}\n\n/* table表格样式重置 */\n.el-table td,\n.el-table th {\n padding: 12px 0;\n height: 50px;\n font-size: 12px;\n min-width: 0;\n box-sizing: border-box;\n text-overflow: ellipsis;\n vertical-align: middle;\n position: relative;\n text-align: left;\n}\n/* 自定义按钮颜色 */\n.content-btn > .el-button {\n padding: 8px 20px;\n font-size: 14px;\n border-radius: 4px;\n font-weight: 400;\n}\n.el-button.init-button {\n color: #ffffff;\n background: #fb4702;\n border-color: transparent;\n}\n.el-button.init-text.el-button--text {\n color: #fb4702 !important;\n}\n/* el-button el-button--init-button2 is-plain */\n.el-button--init-button2.el-button.is-plain {\n background: #fff;\n border-color: #fb4702 !important;\n color: #fb4702 !important;\n}\n/* 自定义按钮焦点事件和hover样式 */\n.el-button.init-button:focus,\n.el-button.init-button:hover {\n color: #ffffff;\n border-color: transparent;\n background-color: #fb4702;\n opacity: 0.8;\n}\n/* 自定义table内删除修改button按钮*/\n.table-footer {\n height: 40px;\n line-height: 40px;\n padding-left: 35px;\n background: #ffe9e1;\n}\n.table-footer > button {\n background: white;\n border: none;\n outline: none;\n cursor: pointer;\n padding: 0px 11px;\n height: 26px;\n background: #ffffff;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 400;\n color: #666666;\n line-height: 17px;\n margin-right: 11px;\n}\n.table-footer button:hover {\n opacity: 0.8;\n}\n/* 自定义查询重置按钮 */\n.inquire-button,\n.reset-button {\n cursor: pointer;\n width: 88px;\n height: 32px;\n font-size: 14px;\n outline: none;\n border: none;\n border-radius: 4px;\n transition: 0.2s;\n margin-right: 16px;\n}\n.inquire-button {\n color: #ffffff;\n background: rgba(251, 71, 2, 1);\n}\n.reset-button {\n background: #ffffff;\n color: rgba(0, 0, 0, 0.65);\n border: 1px solid #d9d9d9;\n margin-right: 20px;\n}\n.inquire-button:hover,\n.reset-button:hover {\n opacity: 0.8;\n}\n\n/* .form-box .el-form-item__label{\n color: #333333;\n } */\n/* 抽屉盒子 */\n.drawer-box {\n width: 100%;\n height: 100vh;\n background: #e8ebf2;\n position: relative;\n}\n/* 头部 */\n.dra-header {\n padding-left: 20px;\n line-height: 81px;\n height: 81px;\n background: #ffffff;\n}\n/* 底部 */\n.dra-footer {\n width: 100%;\n /* position: absolute; */\n background: #ffffff;\n /* bottom: 0; */\n}\n/* 底部内容 */\n.dra-footer-content {\n padding-left: 20px;\n line-height: 81px;\n height: 81px;\n}\n/* 头部title */\n.dra-header span {\n font-size: 16px;\n font-weight: 500;\n color: #333333;\n line-height: 22px;\n}\n/* 主体 */\n.dra-body {\n width: 100%;\n height: calc(100vh - 162px);\n overflow: auto;\n}\n/* 主体内容 */\n.dra-content {\n margin: 32px 30px 30px 30px;\n border-radius: 4px;\n background: white;\n}\n/* 主体title */\n.content-titel {\n height: 50px;\n line-height: 50px;\n padding-left: 22px;\n margin-bottom: 50px;\n border-bottom: 1px solid #e8e8e8;\n}\n/* 主体title span */\n.content-titel span {\n font-size: 14px;\n font-weight: 400;\n color: #333333;\n line-height: 20px;\n}\n.dra-submit,\n.dra-cancel {\n cursor: pointer;\n height: 34px;\n font-size: 14px;\n outline: none;\n border: none;\n color: #ffffff;\n border-radius: 4px;\n transition: 0.2s;\n margin-right: 10px;\n}\n.dra-submit span {\n padding-left: 7px;\n}\n.dra-submit {\n width: 89px;\n background: #fb4702;\n}\n.dra-cancel {\n width: 68px;\n background: #c2c2c2;\n}\n.form-box {\n display: flex;\n width: 90%;\n margin: auto;\n flex-wrap: wrap;\n}\n.form-item {\n width: 50%;\n}\n\n.form-item .el-form-item__content {\n display: flex;\n}\n\n/* 修改from验证样式 */\n.el-form-item.is-required:not(.is-no-asterisk)\n .el-form-item__label-wrap\n > .el-form-item__label:before,\n.el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before {\n content: '*';\n color: #f56c6c;\n margin-right: 4px;\n display: none;\n}\n/* 修改from验证样式*/\n.el-form-item.is-required:not(.is-no-asterisk)\n .el-form-item__label-wrap\n > .el-form-item__label:after,\n.el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label::after {\n content: '*';\n color: #f56c6c;\n margin-left: 4px;\n}\n\n/* dialogPreview 预览样式 */\n.dialogPreview .el-dialog {\n position: fixed;\n top: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n background: rgba(255, 255, 255, 0.95);\n}\n.dialogPreview .el-dialog__header {\n display: none;\n}\n.dialogPreview .el-dialog__body {\n padding: 0px;\n}\n/* 星级大小 */\n.el-rate__icon {\n font-size: 24px !important;\n}\n/* 查看照片样式 */\n.views-photo .el-dialog__header,\n.views-photo .el-dialog__body {\n padding: 0px !important;\n font-size: 0;\n}\n\n/* switch按钮样式 */\n.switch .el-switch__label {\n position: absolute;\n display: none;\n color: #fff !important;\n}\n/*switch 打开时文字位置设置*/\n.switch .el-switch__label--right {\n z-index: 1;\n}\n.switchStyle .el-switch__label {\n position: absolute;\n display: none;\n color: #fff;\n}\n.switchStyle .el-switch__label--left {\n z-index: 9;\n left: 20px;\n}\n.switchStyle .el-switch__label--right {\n z-index: 9;\n color: white;\n left: 4px;\n}\n.switchStyle .el-switch__label.is-active {\n display: block;\n}\n.switchStyle.el-switch .el-switch__core,\n.el-switch .el-switch__label {\n width: 50px !important;\n}\n.switchStyle .el-switch__label.is-active {\n color: white;\n}\n\n/* 修改radio button按钮 */\n.el-radio-button__orig-radio:checked + .el-radio-button__inner {\n color: #fb4702 !important;\n background-color: #ffe9e0 !important;\n border-color: #fb4702 !important;\n box-shadow: -1px 0 0 0 #fb4702 !important;\n}\n.el-radio-button__inner:hover {\n color: #fb4702 !important;\n}\n/* 修改单选框按钮 */\n.el-radio__inner:hover {\n border: 1px solid #fb4702 !important;\n}\n.el-radio__input.is-checked + .el-radio__label {\n color: #666666 !important;\n}\n.el-radio__input.is-checked .el-radio__inner {\n background: #ffffff !important;\n border-color: #fb4702 !important;\n}\n.el-radio__inner::after {\n width: 8px !important;\n height: 8px !important;\n border-radius: 100%;\n background-color: #fb4702 !important;\n}\n/* 修改复选框 checkbox样式 */\n.el-checkbox__input.is-checked .el-checkbox__inner,\n.el-checkbox__input.is-indeterminate .el-checkbox__inner {\n background-color: #fb4702 !important;\n border-color: #fb4702 !important;\n}\n.el-checkbox__input.is-checked + .el-checkbox__label {\n color: #606266 !important;\n}\n\n/* .el-input__inner:focus {\n border: 1px solid #fb4702 !important;\n } */\n/* 测试 \n */\n/* formdate删除 */\n.shop_table_box .el-table thead {\n display: none;\n}\n.shop_table_box .el-table__expanded-cell[class*='cell'] {\n padding: 0px 0px !important;\n}\n.el-table__expanded-cell[class*='cell'] {\n padding: 0px 0px !important;\n}\n\n.my-autocomplete.el-autocomplete-suggestion.el-popper {\n top: 170px !important;\n}\n",".main-titel span {\n font-size: 16px;\n font-family: PingFangSC-Medium, PingFang SC;\n font-weight: 500;\n color: #333333;\n padding-left: 21px;\n}\n.content {\n padding: 20px;\n}\n.content-btn {\n padding-bottom: 20px;\n}\n.form-box {\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n}\n.form-box > .form-input {\n margin-right: 170px;\n}\n.form-btn {\n flex: 1;\n}\n.input-box {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n.input-box > div > span {\n color: #999999;\n font-size: 14px;\n padding-right: 10px;\n}\n.content-table {\n margin-top: 20px;\n border: 1px solid #f5f5f6;\n}\n.creation_box {\n width: 514px;\n margin: 0 auto;\n .el-cascader-menu {\n min-width: 172px !important;\n box-sizing: border-box;\n color: #606266;\n border-right: solid 1px #e4e7ed;\n }\n .el-cascader-menu__wrap {\n height: 284px !important;\n }\n .el-cascader-node.in-active-path,\n .el-cascader-node.is-active,\n .el-cascader-node.is-selectable.in-checked-path {\n color: #fb4702;\n font-weight: 400;\n }\n .el-cascader-node {\n position: relative;\n display: flex;\n align-items: center;\n padding: 0 16px 0 16px;\n height: 32px;\n line-height: 32px;\n outline: 0;\n }\n .btn_footer {\n cursor: pointer;\n width: 256px;\n margin: auto;\n margin-top: 108px;\n margin-bottom: 75px;\n text-align: center;\n color: #fff;\n height: 38px;\n line-height: 38px;\n background: #fb4702;\n border-radius: 4px;\n span {\n font-size: 14px;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #ffffff;\n line-height: 20px;\n }\n .btn_footer:hover {\n opacity: 0.8;\n }\n }\n}\n.drawer_box {\n .el-drawer__header {\n span {\n font-size: 16px;\n font-family: PingFangSC-Medium, PingFang SC;\n font-weight: 500;\n color: #333333;\n }\n }\n .el-drawer__body {\n background: #e8ebf2;\n overflow-y: auto;\n padding-bottom: 81px;\n }\n :focus {\n outline: 0;\n }\n .dra-content {\n padding-bottom: 60px;\n }\n}\n\n.my-autocomplete {\n li {\n line-height: normal;\n padding: 7px;\n .name {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n .addr {\n font-size: 12px;\n color: #b4b4b4;\n }\n .highlighted .addr {\n color: #ddd;\n }\n }\n}\n\n// 自定义按钮样式\n.btn-orange,\n.btn-gray {\n cursor: pointer;\n height: 34px;\n font-size: 14px;\n outline: none;\n border: none;\n color: #ffffff;\n border-radius: 4px;\n transition: 0.2s;\n margin-right: 8px;\n padding: 0 20px;\n i {\n padding-right: 3px;\n }\n &:hover {\n opacity: 0.8;\n }\n}\n.btn-orange {\n background: #fb4702;\n}\n.btn-gray {\n background: #c2c2c2;\n}\n// MessageBox 样式\n.el-message-box {\n width: 30%;\n border-radius: 0px;\n .el-message-box__header {\n padding: 20px 20px 10px;\n }\n .el-message-box__content {\n padding: 30px 20px;\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n border-bottom: 1px solid rgba(0, 0, 0, 0.06);\n }\n .el-message-box__btns {\n padding: 10px 20px 20px;\n text-align: right;\n box-sizing: border-box;\n .el-button {\n width: 88px;\n height: 32px;\n font-size: 14px;\n }\n .el-button--default:hover {\n background: #fff;\n border: 1px solid #dcdfe6;\n color: #606266;\n }\n .el-button--primary {\n color: #ffffff;\n background: rgba(251, 71, 2, 1);\n border: none;\n &:hover {\n background: rgba(251, 71, 2, 1);\n border: none;\n color: #fff;\n }\n }\n }\n //\n /*\n :focus{\n background-color: #EF9E6F;\n border-color: #EF9E6F; \n }\n */\n}\n.el-drawer__header {\n padding: 0 20px;\n margin: 0;\n height: 81px;\n line-height: 81px;\n span {\n font-size: 16px;\n font-family: PingFangSC-Medium, PingFang SC;\n font-weight: 500;\n color: #333333;\n }\n}\n:focus {\n outline: 0;\n}\n\n.report-box {\n .el-progress__text {\n font-size: 14px !important;\n width: 100px !important;\n }\n}\n.flex {\n display: flex;\n}\n.justify-between {\n justify-content: space-between;\n}\n.justify-center {\n justify-content: center;\n}\n.align-center {\n align-items: center;\n}\n.flex-wrap {\n flex-wrap: wrap;\n}\n.el-menu {\n background-color: transparent !important;\n}\n/* 分页重置样式 */\n.pagination-box {\n margin-top: 20px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.pagination-item p {\n color: #999999;\n}\n.el-pagination.is-background .el-pager li:not(.disabled).active {\n background-color: #fb4702 !important;\n color: #fff;\n}\n.el-pagination.is-background .el-pager li:not(.disabled):hover {\n background-color: #fb4702 !important;\n color: #fff !important;\n}\n.el-pagination.is-background .btn-next,\n.el-pagination.is-background .btn-prev,\n.el-pagination.is-background .el-pager li {\n margin: 0 5px;\n background-color: #ffffff !important;\n color: #606266;\n min-width: 30px;\n border-radius: 2px;\n border: 1px solid rgba(0, 0, 0, 0.15);\n}\n.el-pagination__jump {\n margin-left: 24px;\n font-weight: 400;\n color: #999999 !important;\n}\n.el-pagination.is-background .btn-next,\n.el-pagination.is-background .btn-prev,\n.el-pagination.is-background .el-pager li {\n height: 32px;\n margin: 0px 8px;\n background-color: #f4f4f5;\n color: #606266;\n min-width: 30px;\n border-radius: 2px;\n display: inline-block;\n width: 32px;\n}\n/* 分页插入的搜索框样式重置 */\n.page-slot {\n display: inline-block;\n text-align: center;\n font-size: 16px;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #999999;\n line-height: 32px;\n}\n.slot-jump {\n display: inline-block;\n cursor: pointer;\n width: 51px;\n height: 32px;\n line-height: 32px;\n font-size: 16px;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #333333;\n text-align: center;\n background: #ffe7dd;\n border-radius: 2px;\n border: 1px solid #fb4702;\n}\n.el-input.page-jump {\n width: 52px !important;\n height: 32px !important;\n padding: 0 !important;\n}\n.el-input.page-jump > .el-input__inner {\n -webkit-appearance: none;\n background-color: #fff;\n background-image: none;\n border-radius: 2px;\n color: #606266;\n font-size: inherit;\n height: 100%;\n line-height: 100%;\n display: inline-block;\n outline: 0;\n padding: 0px !important;\n transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.comprehensive {\n .el-tabs__item.is-active {\n color: #036dfd !important;\n }\n .el-tabs__active-bar {\n position: absolute;\n bottom: 0;\n left: 0;\n height: 2px;\n background-color: #036dfd !important;\n z-index: 1;\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n list-style: none;\n }\n .el-tabs__item:hover {\n color: #036dfd !important;\n cursor: pointer;\n }\n .login-input .el-input__inner {\n -webkit-appearance: none;\n background-color: #fff;\n background-image: none;\n border-radius: 0px;\n border: none;\n border-bottom: 1px solid #d8d8d8;\n box-sizing: border-box;\n color: #606266;\n display: inline-block;\n font-size: inherit;\n height: 40px;\n line-height: 40px;\n outline: 0;\n padding: 0px 0px;\n margin-bottom: 30px;\n transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\n width: 100%;\n }\n .el-pagination.is-background .el-pager li:not(.disabled).active {\n background-color: #3163c0 !important;\n color: #fff;\n }\n .el-pagination.is-background .el-pager li:not(.disabled):hover {\n background-color: #3163c0 !important;\n color: #fff !important;\n }\n .el-checkbox__input.is-checked .el-checkbox__inner,\n .el-checkbox__input.is-indeterminate .el-checkbox__inner {\n background-color: #409eff !important;\n border-color: #409eff !important;\n }\n // comprehensive\n}\n","<template>\n <div>\n <!-- 页面搜索重置输入框组件 -->\n <div class=\"title-input\">\n <el-form :model=\"form\"\n ref=\"form\"\n :label-width=\"labelWidth\"\n size=\"mini\">\n <div class=\"title-input-box\">\n <div class=\"title-item\"\n v-for=\"item in formItem\"\n :key=\"item.prop\">\n <el-form-item :prop=\"item.prop\"\n :label=\"item.label\"\n :style=\"{ width: item.width }\">\n <el-input v-if=\"item.type === 'Input'\"\n v-model.trim=\"form[item.prop]\"\n :placeholder=\"item.placeholder\"\n :disabled=\"item.disabled\"\n :style=\"{ width: item.inputWidth }\">\n </el-input>\n <el-input v-else-if=\"item.type === 'Int'\"\n oninput=\"value=value.replace(/[^\\d]/g,'')\"\n v-model.trim=\"form[item.prop]\"\n :placeholder=\"item.placeholder\"\n :disabled=\"item.disabled\"\n :style=\"{ width: item.inputWidth }\"></el-input>\n <!-- <el-date-picker v-else-if=\"item.type === 'startEndDate'\"\n v-model=\"form[item.prop]\"\n format=\"yyyy 年 MM 月 dd 日\"\n value-format=\"yyyy-MM-dd hh:mm:ss\"\n :default-time=\"['00:00:00', '23:59:59']\"\n type=\"daterange\"\n :range-separator=\"item.rangeSeparator\"\n :start-placeholder=\"item.startPlaceholder\"\n :end-placeholder=\"item.endPlaceholder\"\n style=\"width:240px\">\n </el-date-picker> -->\n <el-select v-else-if=\"item.type === 'select'\"\n v-model.trim=\"form[item.prop]\"\n :placeholder=\"item.placeholder\">\n <el-option v-for=\"item in item.options\"\n :key=\"item.value\"\n :label=\"item.label\"\n :value=\"item.value\">\n </el-option>\n </el-select>\n <el-checkbox-group v-else-if=\"item.type === 'checkbox'\"\n :style=\"{ width: item.checkboxWidth }\"\n v-model=\"form[item.prop]\">\n <el-checkbox v-for=\"item in item.options\"\n :key=\"item.value\"\n :label=\"item.label\"\n :value=\"item.value\"></el-checkbox>\n </el-checkbox-group>\n <el-date-picker v-else-if=\"item.type === 'Date'\"\n value-format=\"yyyy/MM/dd\"\n type=\"date\"\n v-model=\"form[item.prop]\"\n :placeholder=\"item.placeholder\"></el-date-picker>\n <el-date-picker v-else-if=\"item.type === 'startDate'\"\n value-format=\"yyyy/MM/dd HH:mm:ss\"\n type=\"datetime\"\n v-model=\"form[item.prop]\"\n :placeholder=\"item.placeholder\"></el-date-picker>\n <el-date-picker v-else-if=\"item.type === 'endDate'\"\n value-format=\"yyyy/MM/dd HH:mm:ss\"\n type=\"datetime\"\n v-model=\"form[item.prop]\"\n default-time=\"23:59:59\"\n :placeholder=\"item.placeholder\"></el-date-picker>\n <el-date-picker v-else-if=\"item.type === 'picker'\"\n v-model=\"form[item.prop]\"\n value-format=\"yyyy/MM/dd HH:mm:ss\"\n @change=\"(value) => GetzhifuTime(value,item.startDate,item.endDate)\"\n type=\"datetimerange\"\n :style=\"{ width: item.width }\"\n range-separator=\"至\"\n start-placeholder=\"开始日期\"\n end-placeholder=\"结束日期\">\n </el-date-picker>\n <el-input v-else-if=\"item.type === 'textarea'\"\n type=\"textarea\"\n :rows=\"item.rows\"\n v-model=\"form[item.prop]\"\n :placeholder=\"item.placeholder\">\n </el-input>\n <slot v-else-if=\"item.type = 'Slot'\"\n :name=\"item.slotName\"></slot>\n </el-form-item>\n </div>\n </div>\n <div class=\"title-input-btn\"\n :style=\"{ width: btnWidth }\">\n <el-form-item label-width=\"0px\">\n <button class=\"inquire-button\"\n @click=\"onSubmit()\">\n 查询\n </button>\n <button class=\"reset-button\"\n @click=\"resetForm('form')\">\n 重置\n </button>\n </el-form-item>\n </div>\n </el-form>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n // 获取父组件传递参数\n\n props: {\n labelWidth: {\n type: String,\n default: \"100\"\n },\n formItem: {\n type: Array,\n default: () => [],\n },\n btnWidth: {\n type: String,\n default: '',\n },\n },\n data () {\n return {\n form: {},\n // 日期选择器控件 开始时间结束时间 拆分成为一个对象\n pickerFormat: {},\n }\n },\n methods: {\n // 将传入item项 prop提取出来用于组件的双向绑定\n initFromDate () {\n const forDate = {}\n this.formItem.forEach((item) => {\n if (item.prop) {\n forDate[item.prop] = item.value || null\n }\n })\n this.form = forDate\n console.log(this.form)\n },\n // 日期选择器控件开始时间结束时间 拆分成为一个对象\n GetzhifuTime (value, startDate, endDate) {\n // startDate endDate 是传入属性名\n this.$set(this.pickerFormat, startDate, value[0])\n this.$set(this.pickerFormat, endDate, value[1])\n },\n onSubmit () {\n for (let k in this.form) {\n if (!Array.isArray(this.form[k])) {\n this.$set(this.pickerFormat, k, this.form[k])\n }\n }\n console.log(\"----------------------------------------------------\");\n // console.log(this);\n console.log(this.pickerFormat)\n this.$emit('searchForm', this.pickerFormat)\n },\n resetForm (form) {\n console.log(this.form)\n this.$refs[form].resetFields()\n this.$emit('searchForm', { pageNum: 1, size: 10 ,type:this.form.type})\n },\n },\n watch: {\n formItem: {\n handler (newValue) {\n this.initFromDate()\n },\n immediate: true,\n },\n btnWidth: {\n handler (newValue) {\n this.btnWidth = newValue\n },\n immediate: true,\n deep: true,\n },\n },\n}\n</script>\n<style scoped>\n.el-form {\n display: flex;\n}\n\n.title-input-box {\n flex: 1;\n display: flex;\n justify-content: flex-start;\n flex-wrap: wrap;\n}\n.title-item {\n display: flex;\n flex-wrap: wrap;\n min-width: 25%;\n box-sizing: border-box;\n padding-right: 20px;\n}\n.title-input .el-form .el-form-item .el-select,\n.title-input .el-form .el-form-item .el-input {\n width: 240px;\n}\n.title-input-btn {\n width: 10%;\n}\n.el-form-item__content .inquire-button {\n margin-bottom: 20px;\n}\n.title-input-btn > .el-form-item {\n width: 100%;\n line-height: 20px;\n}\n</style>\n","<template>\n <div class=\"views-photo\">\n <el-dialog :show-close=\"false\"\n @open=\"open\"\n @close=\"close\"\n :visible.sync=\"dialogVisible\"\n width=\"58%\">\n <div class=\"imglist\">\n <div class=\"imgitem\">\n <!-- <img :src=\"imgstart\"\n alt=\"\" /> -->\n <el-image :src=\"imgstart\"\n fit=\"cover\"\n style=\"width: 100%; height: 100%\"></el-image>\n </div>\n <div class=\"imgfooter\">\n <span>{{ number }}/{{ imgtotal }}</span>\n </div>\n <div class=\"imgleft\"\n v-if=\"imglist.length > 1\"\n @click=\"imgleft()\">\n <img :src=\"leftImg\"\n alt=\"\" />\n </div>\n <div class=\"imgright\"\n v-if=\"imglist.length > 1\"\n @click=\"imgright()\">\n <img :src=\"rightImg\"\n alt=\"\" />\n </div>\n </div>\n </el-dialog>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n isVisible: {\n type: Boolean,\n default: false\n },\n goodsImgsList: {\n type: Array,\n default: () => [],\n }\n },\n data () {\n return {\n imglist: [],\n leftImg: require('../../../src/assets/images/leftImg.png'),\n rightImg: require('../../../src/assets/images/rightImg.png'),\n dialogVisible: false,\n imgstart: '', //图片开始路径\n imgnumber: 0,\n number: 1, //图片开始\n imgtotal: '', //图片总数\n }\n },\n methods: {\n // 控制左移动\n imgleft () {\n if (this.number > 1) {\n this.imgnumber--\n this.number--\n this.imgstart = this.imglist[this.imgnumber]\n }\n },\n // 控制右移动\n imgright () {\n if (this.number < this.imgtotal) {\n this.number++\n this.imgnumber++\n this.imgstart = this.imglist[this.imgnumber]\n }\n },\n // 打开触发\n open () {\n this.imgnumber = 0\n this.number = 1\n this.imgstart = this.imglist[this.imgnumber]\n this.imgtotal = this.imglist.length\n // console.log('打开触发')\n },\n // 关闭触发\n close () {\n // console.log('关闭触发' + this.dialogVisible)\n this.$emit('closeViews')\n },\n getImageList (newValue) {\n let list = []\n let url = ''\n newValue.map(item => {\n url = this.$ImgUrl + item.url\n list.push(url)\n url = ''\n })\n this.imglist = list\n console.log(list)\n },\n },\n watch: {\n isVisible: {\n handler (newValue) {\n this.dialogVisible = this.isVisible\n },\n immediate: true\n },\n goodsImgsList: {\n handler (newValue) {\n if (newValue.length) {\n this.getImageList(newValue)\n }\n },\n immediate: true\n }\n }\n}\n</script>\n\n<style scoped>\n/* .imgbtn {\n cursor: pointer;\n width: 100px;\n height: 40px;\n border-radius: 8px;\n background: skyblue;\n margin: 200px auto;\n opacity: 0.8;\n}\n\n.imgbtn:hover {\n opacity: 1;\n} */\n.imgitem {\n width: 100%;\n height: 665px;\n font-style: 0;\n}\n/* .imgitem img {\n width: 100%;\n height: 100%;\n font-size: 0;\n z-index: 10;\n} */\n.imglist {\n position: relative;\n}\n.imgfooter {\n z-index: 100;\n width: 100%;\n text-align: center;\n position: absolute;\n bottom: 20px;\n}\n.imgfooter span {\n font-size: 20px;\n font-size: 20px;\n font-weight: 500;\n color: #ffffff;\n line-height: 28px;\n}\n.imgleft img,\n.imgright img {\n width: 100%;\n}\n.imgleft,\n.imgright {\n cursor: pointer;\n position: relative;\n width: 24px;\n height: 40px;\n}\n.imgleft {\n position: absolute;\n top: 50%;\n left: 20px;\n}\n.imgright {\n position: absolute;\n top: 50%;\n right: 20px;\n}\n</style>\n","<template>\n <div>\n <el-table :data=\"table_data\"\n style=\"width: 100%\"\n v-loading=\"table_config.loading\"\n element-loading-text=\"拼命加载中\"\n element-loading-spinner=\"el-icon-loading\"\n highlight-current-row\n @selection-change=\"clickrow\"\n :cell-style=\"{fontWeight:$store.state.fontWeight,}\"\n :header-cell-style=\"{ background: '#F5F5F6', color: '#999999' }\">\n <el-table-column v-if=\"table_config.checkbox\"\n type=\"selection\"\n width=\"80\">\n </el-table-column>\n <template v-for=\"item in this.table_config.thead\">\n <!--查看图片按钮 -->\n <el-table-column v-if=\"item.type === 'imagebtn'\"\n :key=\"item.prop\"\n :prop=\"item.prop\"\n :label=\"item.label\"\n :width=\"item.width\">\n <template slot-scope=\"scope\">\n <!-- 查看图片 -->\n <el-button v-if=\"scope.row[item.prop] === '1'\"\n class=\"init-text\"\n type=\"text\"\n @click=\"getPhotos()\">\n <span>查看</span>\n </el-button>\n <span v-else>\n -\n </span>\n </template>\n </el-table-column>\n <!--回调-->\n <el-table-column v-else-if=\"item.type === 'function'\"\n :key=\"item.prop\"\n :prop=\"item.prop\"\n :label=\"item.label\"\n :width=\"item.width\">\n <template slot-scope=\"scope\">\n <span v-html=\"item.callback && item.callback(scope.row, item.prop)\"></span>\n </template>\n </el-table-column>\n <!-- 审批结果 -->\n <el-table-column v-else-if=\"item.type === 'txtbtn'\"\n :key=\"item.prop\"\n :prop=\"item.prop\"\n :label=\"item.label\"\n :width=\"item.width\">\n <template slot-scope=\"scope\">\n <div>\n <div v-if=\"JSON.stringify(scope.row[item.prop]) != '{}'\">\n <span style=\"padding-right:20px\">\n {{ scope.row[item.prop].status }}</span>\n <el-button class=\"init-text\"\n type=\"text\"\n @click=\"getPhotos()\">\n <span> {{ scope.row[item.prop].label }}</span>\n </el-button>\n\n </div>\n <div v-else>\n <span>-</span>\n </div>\n </div>\n </template>\n </el-table-column>\n <!-- 序号 -->\n <el-table-column v-else-if=\"item.type === 'index'\"\n :key=\"item.type\"\n :type=\"item.type\"\n :label=\"item.label\"\n :width=\"item.width\">\n </el-table-column>\n <!-- 文字提示 -->\n <el-table-column v-else-if=\"item.type === 'tooltip'\"\n :key=\"item.prop\"\n :prop=\"item.prop\"\n :label=\"item.label\"\n :width=\"item.width\">\n <template slot-scope=\"scope\">\n <div>\n <el-tooltip v-if=\"scope.row[item.prop] != ''\"\n class=\"item\"\n effect=\"dark\"\n :content=\"scope.row[item.prop]\"\n placement=\"bottom-end\">\n <el-button class=\" init-text\"\n type=\"text\">\n <span class=\"el-icon-warning-outline\"\n style=\"font-size:24px\"></span>\n </el-button>\n </el-tooltip>\n <span v-else>\n -\n </span>\n </div>\n </template>\n </el-table-column>\n <!-- 星级评分 -->\n <el-table-column v-else-if=\"item.type === 'Rate'\"\n :key=\"item.prop\"\n :prop=\"item.prop\"\n :label=\"item.label\"\n :width=\"item.width\">\n <template slot-scope=\"scope\">\n <div>\n <el-rate v-model=\"scope.row[item.prop]\"\n :colors=\"colors\"\n v-if=\"scope.row[item.prop] != ''\"\n disabled></el-rate>\n <span v-else>\n -\n </span>\n </div>\n </template>\n </el-table-column>\n <el-table-column v-else-if=\"item.type === 'slot_check'\"\n :key=\"item.prop\"\n :prop=\"item.prop\"\n :label=\"item.label\"\n :width=\"item.width\">\n <template slot-scope=\"scope\">\n <!-- <span>--{{scope.row[item.prop]}}-</span> -->\n <span v-if=\"scope.row[item.prop]=== '1'\">\n <div class=\"slot-check\">\n <span class=\"el-icon-check\"></span>\n </div>\n </span>\n <span v-if=\"scope.row[item.prop] ==='0'\">\n <div class=\"slot-close\">\n <span class=\"el-icon-close\"></span>\n </div>\n </span>\n </template>\n </el-table-column>\n <!--插槽slot-->\n <el-table-column v-else-if=\"item.type === 'slot'\"\n :key=\"item.prop\"\n :prop=\"item.prop\"\n :label=\"item.label\"\n :width=\"item.width\">\n <template slot-scope=\"scope\">\n <slot :name=\"item.slotName\"\n :data=\"scope.row\"></slot>\n </template>\n </el-table-column>\n <!--纯文本渲染-->\n <el-table-column v-else\n :sortable=\"item.sortable\"\n :key=\"item.prop\"\n :prop=\"item.prop\"\n :label=\"item.label\"\n :width=\"item.width\">\n <template slot-scope=\"scope\">\n <span v-if=\"scope.row[item.prop] != ''\">{{\n scope.row[item.prop]\n }}</span>\n <span v-else>\n -\n </span>\n </template>\n </el-table-column>\n </template>\n </el-table>\n <views-photo :isVisible=\"isVisible\"\n @closeViews=\"getclose\"></views-photo>\n </div>\n</template>\n\n<script>\nimport viewsPhoto from '@/components/dialog/viewsPhoto'\nexport default {\n data () {\n return {\n isVisible: false,\n loading_table: true,\n // tableData\n // 绑定数据\n table_data: [],\n table_config: {\n loading: false,\n checkbox: true,\n // 表头\n thead: [],\n // 绑定数据\n data: {},\n },\n colors: ['#FB4702', '#FB4702', '#FB4702'],\n form_data: {},\n }\n },\n components: {\n viewsPhoto,\n },\n props: {\n config: {\n type: Object,\n default: () => ({}),\n },\n },\n methods: {\n clickrow (val) {\n\n this.$emit('clickrow', val)\n },\n // 查看图片\n getPhotos () {\n this.isVisible = true\n },\n // 监听图片组件关闭事件\n getclose () {\n this.isVisible = false\n },\n initConfig () {\n // 父组件传递数据过滤\n for (const key in this.config) {\n if (Object.keys(this.table_config).includes(key)) {\n this.table_config[key] = this.config[key]\n }\n }\n // 配置完成后开始读取接口数据\n this.loadData()\n },\n\n loadData () {\n // let requestData = {\n // url: this.table_config.url,\n // data: this.table_config.data\n // }\n // this.loading_table = true\n // GetTableData(requestData)\n // .then(response => {\n // const data = response.data\n // // 判断数据是否存在\n // if (data) {\n // this.table_data = data.data\n // }\n // // 页码\n // this.$nextTick(() => {\n // // 考虑到DOM元素渲染完成时候\n // })\n // this.total = data.total\n // this.loading_table = false\n // })\n // .catch(error => {\n // this.loading_table = false\n // })\n // console.log(this.config.table_data)\n this.table_data = this.config.table_data\n },\n },\n watch: {\n config: {\n handler (newValue) {\n this.initConfig()\n // console.log('------ table')\n // console.log(newValue)\n },\n immediate: true,\n deep: true,\n },\n },\n}\n</script>\n\n<style scoped>\n.slot-check,\n.slot-close {\n cursor: pointer;\n width: 18px;\n height: 18px;\n color: white;\n text-align: center;\n line-height: 18px;\n font-size: 18px;\n font-weight: 600;\n}\n.slot-check {\n background: #39b54a;\n}\n.slot-close {\n background: #ff6969;\n}\n</style>\n","<template>\n <div class=\"Dialog\">\n <el-dialog :title=\"configObj.title\"\n :visible.sync=\"isVisibleDialog\"\n @close=\"close\"\n @opened=\"opened\"\n width=\"30%\"\n top=\"40vh\"\n Dialog>\n <div class=\"dialog-content\">\n <span>{{configObj.content}} </span>\n </div>\n <span slot=\"footer\"\n class=\"dialog-footer\">\n <div class=\"input-btn\">\n <button class=\"inquire-button\"\n @click=\"confirm()\">\n 确定\n </button>\n <button class=\"reset-button\"\n @click=\"close()\">\n 取消\n </button>\n </div>\n </span>\n </el-dialog>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n dialogVisible: {\n type: Boolean,\n default: false\n },\n dialog_config: {\n type: Object,\n default: () => ({})\n }\n },\n data () {\n return {\n isVisibleDialog: false,\n configObj: {\n title: '',\n content: '',\n button: {},\n },\n }\n },\n methods: {\n initConfig () {\n // 父组件传递数据过滤\n for (const key in this.dialog_config) {\n if (Object.keys(this.configObj).includes(key)) {\n this.configObj[key] = this.dialog_config[key]\n }\n }\n },\n close () {\n this.$emit('cancel', this.isVisibleDialog)\n },\n opened () {\n // console.log('opened')\n },\n cancel () {\n },\n confirm () {\n this.$emit('confirm', this.isVisibleDialog)\n }\n },\n watch: {\n dialogVisible: {\n handler (newValue) {\n this.isVisibleDialog = newValue\n },\n immediate: true\n },\n dialog_config: {\n handler (newValue) {\n this.initConfig()\n },\n immediate: true,\n deep: true\n }\n }\n}\n</script>\n\n<style>\n.Dialog .el-dialog__body {\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n border-bottom: 1px solid rgba(0, 0, 0, 0.06);\n}\n</style>\n","\n.drawers_box {\n position: relative;\n .el-drawer__header {\n padding: 0 20px;\n margin: 0;\n height: 81px;\n line-height: 81px;\n span {\n font-size: 16px;\n font-family: PingFangSC-Medium, PingFang SC;\n font-weight: 500;\n color: #333333;\n }\n }\n .el-drawer__body {\n background: #e8ebf2;\n overflow-y: auto;\n padding-bottom: 81px;\n }\n :focus {\n outline: 0;\n }\n\n .dra-content {\n padding-bottom: 60px;\n }\n .dra-footer {\n position: absolute;\n bottom: 0;\n width: 100%;\n height: 81px;\n line-height: 81px;\n padding: 0 20px;\n }\n}\n\n// .el-drawer__header {\n// display: none;\n// }\n","\n.drawer-content {\n background: #ffffff;\n border-radius: 4px;\n border: 1px solid #e8e8e8;\n .hr {\n width: 100%;\n height: 1px;\n background: #e8e8e8;\n }\n .box {\n .title {\n height: 50px;\n line-height: 50px;\n padding: 0 22px;\n display: flex;\n justify-content: space-between;\n span {\n font-size: 14px;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #333333;\n }\n }\n }\n}\n","\n.vform_box {\n .el-form {\n margin: 0 auto;\n display: flex;\n flex-wrap: wrap;\n }\n}\n@media screen and (min-width: 1600px) {\n .vform_box {\n .el-form {\n width: 85%;\n display: flex;\n flex-wrap: wrap;\n }\n }\n}\n","<template>\n <div>\n <!-- 页面搜索重置输入框组件 -->\n <div class=\"title-input\">\n <el-form :model=\"form\"\n ref=\"form\"\n :label-width=\"labelWidth\"\n size=\"mini\">\n <div class=\"title-input-box\">\n <div class=\"title-item\"\n v-for=\"item in formItem\"\n :key=\"item.prop\">\n <el-form-item :prop=\"item.prop\"\n :label=\"item.label\"\n :style=\"{ width: item.width }\">\n <el-input v-if=\"item.type === 'Input'\"\n v-model=\"form[item.prop]\"\n :placeholder=\"item.placeholder\"\n :disabled=\"item.disabled\"\n :style=\"{ width: item.inputWidth }\">\n </el-input>\n <el-date-picker v-else-if=\"item.type === 'startEndDate'\"\n v-model=\"form[item.prop]\"\n type=\"daterange\"\n :range-separator=\"item.rangeSeparator\"\n :start-placeholder=\"item.startPlaceholder\"\n :end-placeholder=\"item.endPlaceholder\"\n style=\"width:240px\">\n </el-date-picker>\n <el-select v-else-if=\"item.type === 'select'\"\n v-model=\"form[item.prop]\"\n :placeholder=\"item.placeholder\">\n <el-option v-for=\"item in item.options\"\n :key=\"item.value\"\n :label=\"item.label\"\n :value=\"item.value\">\n </el-option>\n </el-select>\n <el-checkbox-group v-else-if=\"item.type === 'checkbox'\"\n :style=\"{ width: item.checkboxWidth }\"\n v-model=\"form[item.prop]\">\n <el-checkbox v-for=\"item in item.options\"\n :key=\"item.value\"\n :label=\"item.label\"\n :value=\"item.value\"></el-checkbox>\n </el-checkbox-group>\n <el-date-picker v-else-if=\"item.type === 'date'\"\n type=\"date\"\n v-model=\"form[item.prop]\"\n :placeholder=\"item.placeholder\"></el-date-picker>\n <el-input v-else-if=\"item.type === 'textarea'\"\n type=\"textarea\"\n :rows=\"item.rows\"\n v-model=\"form[item.prop]\"\n :placeholder=\"item.placeholder\">\n </el-input>\n <slot v-else-if=\"item.type = 'slot'\"\n :name=\"item.slotName\n \"></slot>\n </el-form-item>\n </div>\n </div>\n <div class=\"title-input-btn\"\n :style=\"{ width: btnWidth }\">\n <el-form-item label-width=\"0px\">\n <button class=\"inquire-button\"\n @click=\"onSubmit()\">\n 查询\n </button>\n <button class=\"reset-button\"\n @click=\"resetForm('form')\">\n 重置\n </button>\n </el-form-item>\n </div>\n </el-form>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n // 获取父组件传递参数\n\n props: {\n labelWidth: {\n type: String,\n default: \"auto\"\n },\n formItem: {\n type: Array,\n default: () => [],\n },\n btnWidth: {\n type: String,\n default: '',\n },\n },\n mounted () {\n // console.log('---------mounted')\n },\n data () {\n return {\n form: {},\n }\n },\n methods: {\n initFromDate () {\n const forDate = {}\n // 取出formItem的prop\n this.formItem.forEach((item) => {\n if (item.prop) {\n forDate[item.prop] = item.value || null\n }\n // console.log(this.form)\n })\n this.form = forDate\n },\n onSubmit () {\n console.log('------onSubmit')\n console.log(this.form)\n this.$emit('searchForm', this.form)\n },\n resetForm (form) {\n this.$refs[form].resetFields()\n this.$emit('searchForm', this.form)\n },\n },\n watch: {\n formItem: {\n handler (newValue) {\n this.initFromDate()\n },\n immediate: true,\n },\n btnWidth: {\n handler (newValue) {\n this.btnWidth = newValue\n },\n immediate: true,\n deep: true,\n },\n },\n}\n</script>\n\n<style scoped>\n.el-form {\n display: flex;\n}\n\n.title-input-box {\n flex: 1;\n display: flex;\n justify-content: flex-start;\n flex-wrap: wrap;\n}\n.title-item {\n display: flex;\n flex-wrap: wrap;\n min-width: 25%;\n box-sizing: border-box;\n padding-right: 20px;\n}\n.title-input .el-form .el-form-item .el-select,\n.title-input .el-form .el-form-item .el-input {\n width: 240px;\n}\n.title-input-btn {\n width: 10%;\n}\n.el-form-item__content .inquire-button {\n margin-bottom: 20px;\n}\n.title-input-btn > .el-form-item {\n width: 100%;\n line-height: 20px;\n}\n</style>\n"]}