8c71621bde86cc1e9457cef486f3528f.json 36 KB

1
  1. {"remainingRequest":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/src/views/account/line/index.vue?vue&type=style&index=0&id=2de47f33&lang=scss&scoped=true","dependencies":[{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/src/views/account/line/index.vue","mtime":1708395041885},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/css-loader/dist/cjs.js","mtime":1708395146948},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/vue-loader/lib/loaders/stylePostLoader.js","mtime":1708395147772},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/postcss-loader/src/index.js","mtime":1708395147225},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/sass-loader/dist/cjs.js","mtime":1708395146389},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/cache-loader/dist/cjs.js","mtime":1708395146433},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/vue-loader/lib/index.js","mtime":1708395147382}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoNCi5kYXNoYm9hcmQgew0KICAmLWNvbnRhaW5lciB7DQogICAgbWFyZ2luOiA0NXB4IDMwcHggMzBweDsNCiAgfQ0KDQogICYtdGV4dCB7DQogICAgZm9udC1zaXplOiAzMHB4Ow0KICAgIGxpbmUtaGVpZ2h0OiA0NnB4Ow0KICB9DQp9DQoNCi5jYXJkSGVhZHIgew0KICBtYXJnaW4tdG9wOiAtMjBweDsNCiAgZGlzcGxheTogZmxleDsNCiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KfQ0KDQouc2VhcmNoX2J0biB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyNzY2ZGQ7DQogIGNvbG9yOiAjZjdmOGZiOw0KICBmb250LXNpemU6IDE0cHg7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgd2lkdGg6IDgwcHg7DQogIGhlaWdodDogNDBweDsNCiAgYm9yZGVyLXJhZGl1czogMnB4Ow0KICBmb250LXNpemU6IDE0cHg7DQogIGxpbmUtaGVpZ2h0OiA0MHB4Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIG1hcmdpbi10b3A6IDJweDsNCn0NCg0KLnNlYXJjaF9idG5hIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzI3NjZkZDsNCiAgY29sb3I6ICNmN2Y4ZmI7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogODBweDsNCiAgaGVpZ2h0OiA0MHB4Ow0KICBib3JkZXItcmFkaXVzOiAycHg7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2VhcmNoX2J0bjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICM0ZDg1ZjQ7DQp9DQoNCi5yZXNldF9idG4gew0KICBjb2xvcjogIzU2NTY1NjsNCiAgYm9yZGVyOiAxcHggc29saWQgI2Q3ZDdkNzsNCiAgZm9udC1zaXplOiAxNHB4Ow0KICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogIHdpZHRoOiA4MHB4Ow0KICBoZWlnaHQ6IDQwcHg7DQogIGJvcmRlci1yYWRpdXM6IDJweDsNCiAgZm9udC1zaXplOiAxNHB4Ow0KICBsaW5lLWhlaWdodDogNDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBtYXJnaW4tbGVmdDogMTJweDsNCiAgbWFyZ2luLXRvcDogMnB4Ow0KfQ0KDQoucmVzZXRfYnRuYSB7DQogIGNvbG9yOiAjNTY1NjU2Ow0KICBmb250LXNpemU6IDE0cHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICNkN2Q3ZDc7DQogIHdpZHRoOiA4MHB4Ow0KICBoZWlnaHQ6IDQwcHg7DQogIGJvcmRlci1yYWRpdXM6IDJweDsNCiAgZm9udC1zaXplOiAxNHB4Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIG1hcmdpbi1sZWZ0OiAxMnB4Ow0KfQ0KDQoucmVzZXRfYnRuOmhvdmVyIHsNCiAgY29sb3I6ICMxZjlmZmY7DQogIGJvcmRlcjogMXB4IHNvbGlkICMxZjlmZmY7DQogIGJhY2tncm91bmQ6IG5vbmU7DQp9DQoNCi5hZGRCdG4gew0KICBtYXJnaW46IDE1cHggMjBweCAxNXB4IDA7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICB3aWR0aDogOThweDsNCiAgaGVpZ2h0OiAzNHB4Ow0KICBib3JkZXItcmFkaXVzOiAycHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICNhYmM3ZmQ7DQogIGxpbmUtaGVpZ2h0OiAzNHB4Ow0KICBmb250LXdlaWdodDogNDAwOw0KICBmb250LXNpemU6IDE0cHg7DQogIGNvbG9yOiAjMjI1MGM4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTdlZWZmOw0KfQ0KDQouYWRkQnRuOmhvdmVyIHsNCiAgY29sb3I6ICNmZmZmZmY7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjUwYzg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMyMjUwYzg7DQp9DQoNCi5hZGRCdG46YWN0aXZlIHsNCiAgY29sb3I6ICNmZmZmZmY7DQogIGJhY2tncm91bmQtY29sb3I6ICMxOTRkYTQ7DQogIGJvcmRlcjogMXB4IHNvbGlkICMxOTRkYTQ7DQp9DQoNCi5vcGVyYXRlQnRuIHsNCiAgZGlzcGxheTogZmxleDsNCiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogIGNvbG9yOiAjMjg2NmRkOw0KDQogIGRpdiB7DQogICAgZm9udC1zaXplOiAxNHB4Ow0KICAgIG1hcmdpbjogMCA1cHg7DQogICAgY3Vyc29yOiBwb2ludGVyOw0KICB9DQp9DQoNCjo6di1kZWVwIC5lbC1kaWFsb2dfX2JvZHkgew0KICBwYWRkaW5nOiAyMHB4IDk1cHggIWltcG9ydGFudDsNCn0NCg0KLnh6bWJhIHsNCiAgY29sb3I6ICMyNzY2ZGQ7DQogIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5oeGogew0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCjo6di1kZWVwIC5lbC1kaWFsb2dfX2hlYWRlciB7DQogIHBhZGRpbmc6IDAgMjBweCAxMHB4ICFpbXBvcnRhbnQ7DQp9DQoNCjo6di1kZWVwIC5lbC11cGxvYWRfX3RpcCB7DQogIG1hcmdpbi10b3A6IC0xN3B4Ow0KfQ0KDQo6OnYtZGVlcCAuZWwtdXBsb2FkLWRyYWdnZXIgLmVsLXVwbG9hZF9fdGV4dCB7DQogIG1hcmdpbi10b3A6IC0xMHB4Ow0KfQ0KDQouZGlhbG9nLWZvb3RlciB7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KOjp2LWRlZXAgLmVsLXRleHRhcmVhIC5lbC1pbnB1dF9fY291bnQgew0KICBib3R0b206IC00MHB4Ow0KfQ0KDQo6OnYtZGVlcCAuZWwtaW5wdXRfX2ljb24gew0KICBsaW5lLWhlaWdodDogNDdweDsNCn0NCjo6di1kZWVwIC5lbC1zZWxlY3QgLmVsLWlucHV0IC5lbC1zZWxlY3RfX2NhcmV0IHsNCiAgbGluZS1oZWlnaHQ6IDIwcHggIWltcG9ydGFudDsNCn0NCg=="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuvBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/account/line","sourcesContent":["<template>\r\n <div class=\"dashboard-container\">\r\n <div class=\"dashboard-text\">\r\n <div style=\"background: #fff; padding: 15px; margin-top: -15px\">\r\n <el-row :gutter=\"24\" style=\"display: flex\">\r\n <el-select\r\n v-model=\"queryParams.railwayType\"\r\n placeholder=\"请选择线路类型\"\r\n style=\"width: 220px; padding-left: 10px\"\r\n clearable\r\n @keyup.enter=\"handleQuery\"\r\n >\r\n <el-option\r\n v-for=\"item in lineType\"\r\n :key=\"item.dictValue\"\r\n :label=\"item.dictLabel\"\r\n :value=\"item.dictValue\"\r\n clerable\r\n />\r\n </el-select>\r\n <el-input\r\n v-model=\"queryParams.railwayCode\"\r\n placeholder=\"请输入线路编码\"\r\n style=\"width: 220px; padding-left: 10px\"\r\n @keyup.enter=\"handleQuery\"\r\n clearable\r\n />\r\n <div\r\n class=\"search_btn\"\r\n style=\"cursor: pointer; margin-left: 15px\"\r\n @click=\"handleQuery\"\r\n >\r\n 查询\r\n </div>\r\n <div class=\"reset_btn\" style=\"cursor: pointer\" @click=\"reset\">\r\n 重置\r\n </div>\r\n </el-row>\r\n </div>\r\n\r\n <div style=\"margin-top: 15px; background: #fff; padding: 20px\">\r\n <div class=\"cardHeadr\">\r\n <!-- <div style=\"font-size: 18px\" /> -->\r\n <div style=\"font-size: 18px; float: right; display: flex\">\r\n <div @click=\"addEquipment\" class=\"addBtn\">\r\n <span class=\"icon font_family\">&#xe604;</span>\r\n 新增\r\n </div>\r\n <div @click=\"delLineArray\" class=\"addBtn\">\r\n <span class=\"icon font_family\">&#xe607;</span>\r\n 批量删除\r\n </div>\r\n <!-- <el-upload class=\"addBtn\" action=\"#\" :http-request=\"httpRequest\" :show-file-list=\"false\" :on-change=\"handleChange\"\r\n :before-upload=\"beforeAvatarUpload\" multiple\r\n accept=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\">\r\n <div class=\"addBtn\" style=\"position: relative;top:-23px;left: -6px;\" size=\"small\">导入</div>\r\n </el-upload> -->\r\n <div @click=\"importLoadIn\" class=\"addBtn\">\r\n <span class=\"icon font_family\">&#xe606;</span>\r\n 导入\r\n </div>\r\n <div @click=\"uploadOut\" class=\"addBtn\">\r\n <span class=\"icon font_family\">&#xe605;</span>\r\n 导出\r\n </div>\r\n <div @click=\"downloadOut\" class=\"addBtn\" style=\"margin-right: 0\">\r\n <span class=\"icon font_family\">&#xe603;</span>\r\n 下载模板\r\n </div>\r\n </div>\r\n </div>\r\n <el-table\r\n :data=\"tableData\"\r\n style=\"width: 100%\"\r\n @selection-change=\"handleSelectionChange\"\r\n >\r\n <el-table-column type=\"selection\" width=\"55\" />\r\n <el-table-column prop=\"railwayName\" label=\"线路名称\" align=\"center\" />\r\n <el-table-column prop=\"railwayCode\" label=\"线路编码\" align=\"center\" />\r\n <el-table-column\r\n prop=\"railwayTypeName\"\r\n label=\"线路类型\"\r\n align=\"center\"\r\n />\r\n <el-table-column\r\n prop=\"milesRange\"\r\n label=\"线路起止里程(km)\"\r\n align=\"center\"\r\n />\r\n \r\n <!-- <el-table-column prop=\"railwayName\" label=\"线路名称\" align=\"center\" /> -->\r\n <el-table-column\r\n prop=\"remark\"\r\n label=\"备注\"\r\n align=\"center\"\r\n show-overflow-tooltip\r\n />\r\n <el-table-column prop=\"createTime\" label=\"创建时间\" align=\"center\" />\r\n <el-table-column prop=\"text13\" label=\"操作\" align=\"center\">\r\n <template slot-scope=\"scope\">\r\n <div class=\"operateBtn\">\r\n <div type=\"text\" @click=\"editEquip(scope.row)\">修改</div>\r\n <div type=\"text\" @click=\"delLine(scope.row)\">\r\n <span>删除</span>\r\n </div>\r\n </div>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n\r\n <el-row type=\"flex\" justify=\"end\" style=\"margin-top: 10px\">\r\n <el-pagination\r\n :page-sizes=\"[10, 15, 20]\"\r\n layout=\"total, sizes, prev, pager, next, jumper\"\r\n :total=\"total\"\r\n @size-change=\"handleSizeChange\"\r\n @current-change=\"handleCurrentChange\"\r\n />\r\n </el-row>\r\n </div>\r\n <el-dialog\r\n v-if=\"dialogFormVisible\"\r\n :title=\"title\"\r\n :visible.sync=\"dialogFormVisible\"\r\n @close=\"CloseIn\"\r\n width=\"636px\"\r\n >\r\n <el-form ref=\"form\" :model=\"form\" :rules=\"rules\">\r\n <el-form-item label=\"线路编码\" label-width=\"80px\" prop=\"railwayCode\">\r\n <el-input\r\n v-model=\"form.railwayCode\"\r\n autocomplete=\"off\"\r\n placeholder=\"请输入线路编码\"\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"线路名称\" label-width=\"80px\" prop=\"railwayName\">\r\n <el-input\r\n v-model=\"form.railwayName\"\r\n autocomplete=\"off\"\r\n placeholder=\"请输入线路名称\"\r\n />\r\n </el-form-item>\r\n <el-form-item\r\n label=\"线路类型\"\r\n label-width=\"80px\"\r\n prop=\"railwayTypeName\"\r\n >\r\n <el-select\r\n v-model=\"form.railwayTypeName\"\r\n style=\"width: 100%\"\r\n placeholder=\"请选择线路类型\"\r\n >\r\n <el-option\r\n v-for=\"item in lineType\"\r\n :key=\"item.dictValue\"\r\n :label=\"item.dictLabel\"\r\n :value=\"item.dictValue\"\r\n />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"起始里程\" label-width=\"80px\" prop=\"initialMileageBD\">\r\n <el-input\r\n v-model=\"form.initialMileageBD\"\r\n style=\"width: 99%\"\r\n oninput=\"value=value.replace(/[^\\d^\\.]+/g,'').replace('.','$#$').replace(/\\./g,'').replace('$#$','.')\"\r\n placeholder=\"请输入起始里程\"\r\n >\r\n <template slot=\"append\">km</template>\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item label=\"结束里程\" label-width=\"80px\" prop=\"endMileageBD\">\r\n <el-input\r\n v-model=\"form.endMileageBD\"\r\n style=\"width: 99%\"\r\n oninput=\"value=value.replace(/[^\\d^\\.]+/g,'').replace('.','$#$').replace(/\\./g,'').replace('$#$','.')\"\r\n placeholder=\"请输入结束里程\"\r\n >\r\n <template slot=\"append\">km</template>\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item label=\"备注\" label-width=\"80px\" prop=\"remark\">\r\n <el-input\r\n v-model=\"form.remark\"\r\n type=\"textarea\"\r\n autocomplete=\"off\"\r\n placeholder=\"请输入备注\"\r\n maxlength=\"200\"\r\n show-word-limit\r\n />\r\n </el-form-item>\r\n </el-form>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <!-- <el-button class=\"search_btna\" @click=\"submitForm\">保存</el-button>\r\n <el-button class=\"reset_btna\" @click=\"closeDia\">取 消</el-button> -->\r\n <div class=\"search\" @click=\"submitForm\">保 存</div>\r\n <div class=\"reset\" @click=\"closeDia\">取 消</div>\r\n </div>\r\n </el-dialog>\r\n <!-- 上传 -->\r\n <el-dialog\r\n :visible.sync=\"uploadDialog\"\r\n title=\"线路导入\"\r\n width=\"620px\"\r\n @close=\"showFalseUpload\"\r\n >\r\n <el-upload\r\n ref=\"upload\"\r\n class=\"upload-demo\"\r\n style=\"text-align: center\"\r\n drag\r\n action=\"#\"\r\n :http-request=\"uploadHttpRequest\"\r\n :auto-upload=\"false\"\r\n :file-list=\"fileList\"\r\n :on-change=\"uploadFileList\"\r\n >\r\n <!-- :headers=\"headers\" -->\r\n <!-- :on-success=\"handleFileSuccess\" -->\r\n <i class=\"el-icon-upload\" />\r\n <div class=\"el-upload__text\">将文件拖到此处,或<em>点击上传</em></div>\r\n <!-- <div class=\"el-upload__tip\">只能上传xls/xlsx文件,且不超过500kb</div> -->\r\n </el-upload>\r\n <div class=\"hxj\">支持扩展名:.xlsx</div>\r\n <div class=\"hxj\" style=\"margin: 0 -90px\">\r\n 请先下载模板,根据模板内容填写,再上传文件\r\n <span class=\"xzmba\" @click=\"downloadOut\">下载模板</span>\r\n </div>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button class=\"search_btna\" @click=\"uploadSubmitDialog\"\r\n >确定</el-button\r\n >\r\n <el-button class=\"reset_btna\" @click=\"showFalseUpload\"\r\n >取 消</el-button\r\n >\r\n </div>\r\n </el-dialog>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { getToken } from \"@/utils/auth\";\r\nimport { mapGetters } from \"vuex\";\r\nimport {\r\n getLineDataList,\r\n getLineDataAddNewer,\r\n getLineDataLoadIn,\r\n getDownLoadList,\r\n getLineDataDelete,\r\n getLineDataUpdate,\r\n getLineDataLoadOut,\r\n} from \"@/api/account/line\";\r\nimport { dataType} from \"@/api/alarmList\";\r\n\r\nexport default {\r\n name: \"Cart\",\r\n computed: {\r\n ...mapGetters([\"name\"]),\r\n },\r\n data() {\r\n var xlbm = (rule, value, callback) => {\r\n if (value === undefined || value === \"\") {\r\n callback(new Error(\"请输入线路编码\"));\r\n } else if (value.length > 20) {\r\n callback(new Error(\"最多可输入20位\"));\r\n } else {\r\n callback();\r\n }\r\n };\r\n var xlmc = (rule, value, callback) => {\r\n if (value === undefined || value === \"\") {\r\n callback(new Error(\"请输入线路名称\"));\r\n } else if (value.length > 20) {\r\n callback(new Error(\"最多可输入20位\"));\r\n } else {\r\n callback();\r\n }\r\n };\r\n var bbz = (rule, value, callback) => {\r\n if (value === undefined || value === \"\") {\r\n callback(new Error(\"请输入备注\"));\r\n } else if (value.length > 200) {\r\n callback(new Error(\"最多可输入200位\"));\r\n } else {\r\n callback();\r\n }\r\n };\r\n return {\r\n // 导入\r\n dataForm: {\r\n name: \"\",\r\n file: null,\r\n },\r\n rules: {\r\n railwayCode: [{ required: true, validator: xlbm, trigger: \"blur\" }],\r\n railwayName: [{ required: true, validator: xlmc, trigger: \"blur\" }],\r\n railwayTypeName: [\r\n { required: true, message: \"请选择线路类型\", trigger: \"change\" },\r\n ],\r\n initialMileageBD: [{ required: true, message: \"请输入起始里程\", trigger: \"blur\" }],\r\n endMileageBD: [{ required: true, message: \"请输入结束里程\", trigger: \"blur\" }],\r\n // remark: [{ required: true, validator: bbz, trigger: 'blur' }]\r\n },\r\n queryParams: {\r\n pageSize: \"10\",\r\n pageNum: \"1\",\r\n railwayType: \"\",\r\n railwayCode: \"\",\r\n railwayName: \"\",\r\n ids: [],\r\n },\r\n lineType: [\r\n // {\r\n // value: \"1\",\r\n // label: \"高铁\",\r\n // },\r\n // {\r\n // value: \"2\",\r\n // label: \"普铁\",\r\n // },\r\n ],\r\n // dataType: [\r\n // {\r\n // value: \"1\",\r\n // label: \"全部类型\",\r\n // },\r\n // {\r\n // value: \"2\",\r\n // label: \"类型一\",\r\n // },\r\n // {\r\n // value: \"3\",\r\n // label: \"类型二\",\r\n // },\r\n // ],\r\n getRespons: \"\",\r\n uploadDialog: false,\r\n tableData: [],\r\n dialogFormVisible: false,\r\n dataForm: {\r\n name: \"\",\r\n file: null,\r\n },\r\n form: {\r\n railwayCode: \"\",\r\n railwayName: \"\",\r\n railwayType: \"\",\r\n railwayTypeName: \"\",\r\n remark: \"\",\r\n },\r\n fileList: [],\r\n dialogType: \"\",\r\n title: \"\",\r\n ids: [],\r\n headers: { Authorization: getToken() },\r\n action: \"#\",\r\n };\r\n },\r\n created() {\r\n this.getLineaList();\r\n this.dataType(\"railway_type\");\r\n },\r\n methods: {\r\n handleCurrentChange(val) {\r\n this.queryParams.pageNum = val;\r\n this.getLineaList();\r\n },\r\n handleSizeChange(val) {\r\n this.queryParams.pageSize = val;\r\n this.getLineaList();\r\n },\r\n uploadFileList(file) {\r\n if (file.status === \"ready\") {\r\n this.fileList.push(file);\r\n if (this.fileList.length > 1) {\r\n this.fileList.splice(0, 1);\r\n }\r\n }\r\n },\r\n\r\n dataType(val) {\r\n dataType(val).then((res) => {\r\n console.log(res);\r\n if (val === \"railway_type\") {\r\n this.lineType = res.data;\r\n } \r\n });\r\n },\r\n\r\n\r\n\r\n\r\n showFalseUpload() {\r\n (this.uploadDialog = false), (this.fileList = []);\r\n },\r\n uploadSubmitDialog() {\r\n const fileData = new FormData();\r\n fileData.append(\"file\", this.fileList[0].raw);\r\n let isHttpRequest = this.fileList[0].raw.name.split(\".\");\r\n if (\r\n isHttpRequest[isHttpRequest.length - 1] == \"xlsx\" ||\r\n isHttpRequest[isHttpRequest.length - 1] == \"xls\"\r\n ) {\r\n getLineDataLoadIn(fileData).then((res) => {\r\n if (res.code == 200) {\r\n this.$message({\r\n type: \"success\",\r\n message: \"导入成功!\",\r\n });\r\n this.uploadDialog = false;\r\n this.fileList = [];\r\n this.getLineaList();\r\n } else {\r\n this.$message({\r\n type: \"error\",\r\n message: res.msg,\r\n });\r\n this.getLineaList();\r\n this.fileList = [];\r\n }\r\n });\r\n } else {\r\n this.$message({\r\n type: \"error\",\r\n message: \"上传的文件只能是xls以及xlsx格式!\",\r\n });\r\n this.fileList = [];\r\n }\r\n },\r\n // 导入\r\n httpRequest(param) {\r\n let formData = new FormData();\r\n formData.append(\"file\", this.dataForm.file.raw);\r\n let configHeaders = {\r\n headers: { \"Content-Type\": \"multipart/form-data\" },\r\n };\r\n getLineDataLoadIn(formData).then((res) => {\r\n if (res.code == 200) {\r\n this.$message({\r\n type: \"success\",\r\n message: \"导入成功!\",\r\n });\r\n this.getLineaList(this.data);\r\n } else {\r\n this.$message({\r\n type: \"error\",\r\n message: res.msg,\r\n });\r\n }\r\n });\r\n },\r\n //验证文件类型\r\n beforeAvatarUpload(file) {\r\n const isXls =\r\n file.type === \"application/vnd.ms-excel\"\r\n ? true\r\n : file.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n ? true\r\n : false;\r\n if (!isXls) {\r\n alert(\"上传的文件只能是xls以及xlsx格式!\");\r\n }\r\n return isXls;\r\n },\r\n // 判断文件个数\r\n handleChange(file, fileList) {\r\n if (fileList.length >= 2) {\r\n return;\r\n }\r\n if (fileList.length === 1) {\r\n this.hasFile = true;\r\n }\r\n this.dataForm.file = file;\r\n },\r\n importLoadIn: function () {\r\n this.uploadDialog = true;\r\n },\r\n handleSelectionChange(val) {\r\n this.ids = val.map((item) => item.id);\r\n this.queryParams.ids = val.map((item) => item.id);\r\n },\r\n handleQuery() {\r\n this.queryParams.pageNum = 1;\r\n this.getLineaList();\r\n },\r\n reset() {\r\n this.queryParams = {};\r\n this.queryParams.pageNum = 1;\r\n this.queryParams.pageSize = 10;\r\n this.getLineaList();\r\n },\r\n getLineaList: function () {\r\n getLineDataList(this.queryParams).then((response) => {\r\n if (!this.queryParams.pageNum || !this.queryParams.pageSize) {\r\n this.queryParams.pageNum = 1;\r\n this.queryParams.pageSize = 10;\r\n getLineDataList(this.queryParams).then((res) => {\r\n this.tableData = res.data.records;\r\n this.total = res.data.total;\r\n });\r\n }\r\n if (\r\n response.data.records.length == 0 &&\r\n this.queryParams.pageNum != 1\r\n ) {\r\n this.queryParams.pageNum = this.queryParams.pageNum - 1;\r\n getLineDataList(this.queryParams).then((res) => {\r\n this.tableData = res.data.records;\r\n this.total = res.data.total;\r\n });\r\n }\r\n this.tableData = response.data.records;\r\n this.total = response.data.total;\r\n });\r\n },\r\n submitForm(form) {\r\n this.$refs.form.validate((valid) => {\r\n if (valid) {\r\n if(this.form.initialMileageBD>this.form.endMileageBD) {\r\n return this.$message({\r\n message: \"结束里程必须大于起始里程\",\r\n type: \"error\",\r\n });\r\n }\r\n if (this.dialogType == 1) {\r\n this.form.railwayType = this.form.railwayTypeName;\r\n getLineDataAddNewer(this.form).then((response) => {\r\n if (response.code == 200) {\r\n this.$message({\r\n message: \"新增成功\",\r\n type: \"success\",\r\n });\r\n this.getLineaList();\r\n this.dialogFormVisible = false;\r\n this.$refs[\"form\"].resetFields();\r\n this.form = {};\r\n } else {\r\n this.$message({\r\n message: response.msg,\r\n type: \"error\",\r\n });\r\n }\r\n });\r\n } else if (this.dialogType == 2) {\r\n if (\r\n this.form.railwayTypeName == \"高铁\" ||\r\n this.form.railwayTypeName == \"1\"\r\n ) {\r\n this.form.railwayType = 1;\r\n } else if (\r\n this.form.railwayTypeName == \"普铁\" ||\r\n this.form.railwayTypeName == \"2\"\r\n ) {\r\n this.form.railwayType = 2;\r\n }\r\n getLineDataUpdate(this.form).then((response) => {\r\n if (response.code == 200) {\r\n this.$message({\r\n message: \"修改成功\",\r\n type: \"success\",\r\n });\r\n this.getLineaList();\r\n this.dialogFormVisible = false;\r\n this.$refs[\"form\"].resetFields();\r\n this.form = {};\r\n } else {\r\n this.form.railwayType = this.form.railwayTypeName;\r\n // if (this.form.railwayType ==1) {\r\n // this.form.railwayType = '高铁'\r\n // } else if (this.form.railwayType == 2) {\r\n // this.form.railwayType = '普铁'\r\n // }\r\n this.$message({\r\n message: response.msg,\r\n type: \"error\",\r\n });\r\n }\r\n });\r\n }\r\n } else {\r\n console.log(\"error submit!!\");\r\n return false;\r\n }\r\n });\r\n },\r\n delLineArray() {\r\n if (this.ids.length == 0) {\r\n this.$message({\r\n type: \"error\",\r\n message: \"请先选择需要删除的数据\",\r\n });\r\n } else {\r\n this.$confirm(\"确定要删除吗?\", \"信息提示\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\",\r\n })\r\n .then(() => {\r\n getLineDataDelete(this.ids).then((res) => {\r\n if (res.code == 200) {\r\n this.getLineaList();\r\n this.$message({\r\n type: \"success\",\r\n message: \"删除成功!\",\r\n });\r\n } else {\r\n this.$message({\r\n type: \"error\",\r\n message: res.msg,\r\n });\r\n }\r\n });\r\n })\r\n .catch(() => {\r\n this.$message({\r\n type: \"info\",\r\n message: \"已取消删除\",\r\n });\r\n });\r\n }\r\n },\r\n delLine: function (row) {\r\n this.$confirm(\"确定要删除吗?\", \"信息提示\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\",\r\n })\r\n .then(() => {\r\n getLineDataDelete(row.id).then((res) => {\r\n if (res.code == 200) {\r\n this.getLineaList();\r\n this.$message({\r\n type: \"success\",\r\n message: \"删除成功!\",\r\n });\r\n } else {\r\n this.$message({\r\n type: \"error\",\r\n message: res.msg,\r\n });\r\n }\r\n });\r\n })\r\n .catch(() => {\r\n this.$message({\r\n type: \"info\",\r\n message: \"已取消删除\",\r\n });\r\n });\r\n },\r\n closeDia() {\r\n this.dialogFormVisible = false;\r\n this.$refs[\"form\"].resetFields();\r\n this.form = {};\r\n },\r\n CloseIn() {\r\n this.dialogFormVisible = false;\r\n this.$refs[\"form\"].resetFields();\r\n this.form = {};\r\n },\r\n addEquipment: function () {\r\n this.dialogFormVisible = true;\r\n this.dialogType = 1;\r\n this.title = \"新增线路\";\r\n },\r\n editEquip: function (row) {\r\n this.form.railwayType = row.railwayTypeName;\r\n this.dialogFormVisible = true;\r\n this.form = JSON.parse(JSON.stringify(row));\r\n if (this.form.railwayType == 1) {\r\n this.form.railwayType = \"高铁\";\r\n } else if (this.form.railwayType == 2) {\r\n this.form.railwayType = \"普铁\";\r\n }\r\n this.dialogType = 2;\r\n this.title = \"修改线路信息\";\r\n },\r\n uploadOut: function () {\r\n delete this.queryParams.pageNum;\r\n delete this.queryParams.pageSize;\r\n getLineDataLoadOut(this.queryParams).then((res) => {\r\n\r\n // this.exportFile(res, \"线路台账信息\");\r\n\r\n if (res.type == \"application/json\") {\r\n const reader = new FileReader(); \r\n reader.readAsText(res, 'utf-8'); \r\n reader.onload = function () {\r\n const msg = JSON.parse(reader.result);\r\n if(msg.code == 200){\r\n this.exportFile(res, \"线路台账信息\");\r\n } else{\r\n Message({\r\n type: 'error',\r\n message: msg.msg\r\n });\r\n } \r\n }\r\n }else{\r\n this.exportFile(res, \"线路台账信息\");\r\n }\r\n })\r\n },\r\n exportFile: function (obj, name = Date.now(), suffix = \"xlsx\") {\r\n const url = window.URL.createObjectURL(\r\n new Blob([obj], { type: \"application/vnd.ms-excel\" })\r\n );\r\n const aDOM = document.createElement(\"a\");\r\n aDOM.style.display = \"none\";\r\n aDOM.href = url;\r\n const fileName = name + \".\" + suffix;\r\n aDOM.setAttribute(\"download\", fileName);\r\n document.body.appendChild(aDOM);\r\n aDOM.click();\r\n document.body.removeChild(aDOM);\r\n },\r\n downloadOut() {\r\n getDownLoadList({}).then((res) => {\r\n this.exportDownFile(res, \"线路台账模板\");\r\n });\r\n },\r\n exportDownFile: function (obj, name = Date.now(), suffix = \"xlsx\") {\r\n const url = window.URL.createObjectURL(\r\n new Blob([obj], { type: \"application/vnd.ms-excel\" })\r\n );\r\n const aDOM = document.createElement(\"a\");\r\n aDOM.style.display = \"none\";\r\n aDOM.href = url;\r\n const fileName = name + \".\" + suffix;\r\n aDOM.setAttribute(\"download\", fileName);\r\n document.body.appendChild(aDOM);\r\n aDOM.click();\r\n document.body.removeChild(aDOM);\r\n },\r\n deleteEquip: function () {\r\n this.$confirm(\"此操作将永久删除该文件, 是否继续?\", \"提示\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\",\r\n })\r\n .then(() => {\r\n this.$message({\r\n type: \"success\",\r\n message: \"删除成功!\",\r\n });\r\n })\r\n .catch(() => {\r\n this.$message({\r\n type: \"info\",\r\n message: \"已取消删除\",\r\n });\r\n });\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.dashboard {\r\n &-container {\r\n margin: 45px 30px 30px;\r\n }\r\n\r\n &-text {\r\n font-size: 30px;\r\n line-height: 46px;\r\n }\r\n}\r\n\r\n.cardHeadr {\r\n margin-top: -20px;\r\n display: flex;\r\n justify-content: space-between;\r\n}\r\n\r\n.search_btn {\r\n background-color: #2766dd;\r\n color: #f7f8fb;\r\n font-size: 14px;\r\n display: inline-block;\r\n width: 80px;\r\n height: 40px;\r\n border-radius: 2px;\r\n font-size: 14px;\r\n line-height: 40px;\r\n text-align: center;\r\n margin-top: 2px;\r\n}\r\n\r\n.search_btna {\r\n background-color: #2766dd;\r\n color: #f7f8fb;\r\n font-size: 14px;\r\n display: inline-block;\r\n width: 80px;\r\n height: 40px;\r\n border-radius: 2px;\r\n font-size: 14px;\r\n text-align: center;\r\n}\r\n\r\n.search_btn:hover {\r\n background-color: #4d85f4;\r\n}\r\n\r\n.reset_btn {\r\n color: #565656;\r\n border: 1px solid #d7d7d7;\r\n font-size: 14px;\r\n display: inline-block;\r\n width: 80px;\r\n height: 40px;\r\n border-radius: 2px;\r\n font-size: 14px;\r\n line-height: 40px;\r\n text-align: center;\r\n margin-left: 12px;\r\n margin-top: 2px;\r\n}\r\n\r\n.reset_btna {\r\n color: #565656;\r\n font-size: 14px;\r\n border: 1px solid #d7d7d7;\r\n width: 80px;\r\n height: 40px;\r\n border-radius: 2px;\r\n font-size: 14px;\r\n text-align: center;\r\n margin-left: 12px;\r\n}\r\n\r\n.reset_btn:hover {\r\n color: #1f9fff;\r\n border: 1px solid #1f9fff;\r\n background: none;\r\n}\r\n\r\n.addBtn {\r\n margin: 15px 20px 15px 0;\r\n cursor: pointer;\r\n text-align: center;\r\n width: 98px;\r\n height: 34px;\r\n border-radius: 2px;\r\n border: 1px solid #abc7fd;\r\n line-height: 34px;\r\n font-weight: 400;\r\n font-size: 14px;\r\n color: #2250c8;\r\n background-color: #e7eeff;\r\n}\r\n\r\n.addBtn:hover {\r\n color: #ffffff;\r\n background-color: #2250c8;\r\n border: 1px solid #2250c8;\r\n}\r\n\r\n.addBtn:active {\r\n color: #ffffff;\r\n background-color: #194da4;\r\n border: 1px solid #194da4;\r\n}\r\n\r\n.operateBtn {\r\n display: flex;\r\n justify-content: center;\r\n color: #2866dd;\r\n\r\n div {\r\n font-size: 14px;\r\n margin: 0 5px;\r\n cursor: pointer;\r\n }\r\n}\r\n\r\n::v-deep .el-dialog__body {\r\n padding: 20px 95px !important;\r\n}\r\n\r\n.xzmba {\r\n color: #2766dd;\r\n text-decoration: underline;\r\n cursor: pointer;\r\n}\r\n\r\n.hxj {\r\n text-align: center;\r\n}\r\n\r\n::v-deep .el-dialog__header {\r\n padding: 0 20px 10px !important;\r\n}\r\n\r\n::v-deep .el-upload__tip {\r\n margin-top: -17px;\r\n}\r\n\r\n::v-deep .el-upload-dragger .el-upload__text {\r\n margin-top: -10px;\r\n}\r\n\r\n.dialog-footer {\r\n text-align: center;\r\n}\r\n\r\n::v-deep .el-textarea .el-input__count {\r\n bottom: -40px;\r\n}\r\n\r\n::v-deep .el-input__icon {\r\n line-height: 47px;\r\n}\r\n::v-deep .el-select .el-input .el-select__caret {\r\n line-height: 20px !important;\r\n}\r\n</style>\r\n"]}]}