1 line
16 KiB
JSON
1 line
16 KiB
JSON
{"remainingRequest":"G:\\project\\smart-power-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!G:\\project\\smart-power-ui\\src\\views\\profile\\Contract\\index.vue?vue&type=style&index=0&lang=scss&","dependencies":[{"path":"G:\\project\\smart-power-ui\\src\\views\\profile\\Contract\\index.vue","mtime":1617862726181},{"path":"G:\\project\\smart-power-ui\\node_modules\\css-loader\\dist\\cjs.js","mtime":1592876569350},{"path":"G:\\project\\smart-power-ui\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":1610504274351},{"path":"G:\\project\\smart-power-ui\\node_modules\\postcss-loader\\src\\index.js","mtime":1591751774425},{"path":"G:\\project\\smart-power-ui\\node_modules\\sass-loader\\dist\\cjs.js","mtime":1612140853844},{"path":"G:\\project\\smart-power-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1591751767036},{"path":"G:\\project\\smart-power-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1610504274351}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKLmNvbnRyYWN0LWd6LXdyYXAgewogIG1pbi1oZWlnaHQ6IDUwcHg7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC13cmFwOiB3cmFwOwogIHRvcDogMTVweDsKICBib3JkZXI6IDFweCBzb2xpZCAjYTlhNmE2OwogIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgbGVmdDogLTcwcHg7CiAgd2lkdGg6IGNhbGMoMTAwJSArIDcwcHgpOwogIHBhZGRpbmc6IDEwcHg7Cn0K"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/profile/Contract","sourcesContent":["<template>\n <div class=\"app-container contract-wrap\">\n <el-form\n :model=\"queryParams\"\n ref=\"queryForm\"\n :inline=\"true\"\n v-show=\"showSearch\"\n label-width=\"68px\"\n >\n <el-form-item label=\"合同名称\" prop=\"contractName\">\n <el-input\n v-model=\"queryParams.contractName\"\n placeholder=\"请输入合同名称\"\n clearable\n size=\"small\"\n @keyup.enter.native=\"handleQuery\"\n />\n </el-form-item>\n <el-form-item label=\"计价类型\" prop=\"contractType\">\n <el-select v-model=\"queryParams.contractType\" placeholder=\"请选择计价类型\" clearable size=\"small\">\n <el-option\n :label=\"keys\"\n v-for=\"(keys, vals) in contractTypeOption\"\n :key=\"keys\"\n :value=\"vals\"\n />\n </el-select>\n </el-form-item>\n <el-form-item>\n <el-button type=\"primary\" icon=\"el-icon-search\" size=\"mini\" @click=\"handleQuery\">搜索</el-button>\n <el-button icon=\"el-icon-refresh\" size=\"mini\" @click=\"resetQuery\">重置</el-button>\n </el-form-item>\n </el-form>\n\n <el-row :gutter=\"10\" class=\"mb8\">\n <el-col :span=\"1.5\">\n <el-button\n type=\"primary\"\n plain\n icon=\"el-icon-plus\"\n size=\"mini\"\n @click=\"handleAdd\"\n v-hasPermi=\"['iot:contract:add']\"\n >新增</el-button>\n </el-col>\n <el-col :span=\"1.5\">\n <el-button\n type=\"warning\"\n plain\n icon=\"el-icon-download\"\n size=\"mini\"\n @click=\"handleExport\"\n v-hasPermi=\"['iot:contract:export']\"\n >导出</el-button>\n </el-col>\n <right-toolbar :showSearch.sync=\"showSearch\" @queryTable=\"getList\"></right-toolbar>\n </el-row>\n\n <el-table v-loading=\"loading\" :data=\"contractList\">\n <el-table-column type=\"index\" label=\"序号\" align=\"center\" :index=\"indexFormatter\" width=\"80px\"></el-table-column>\n <el-table-column label=\"合同名称\" align=\"left\" prop=\"contractName\" />\n <el-table-column\n label=\"计价类型\"\n align=\"left\"\n prop=\"contractType\"\n :formatter=\"contractTypeFormatter\"\n />\n <el-table-column\n label=\"状态\"\n align=\"center\"\n width=\"150px\"\n prop=\"status\"\n :formatter=\"statusFormatter\"\n />\n <el-table-column\n label=\"操作\"\n align=\"center\"\n width=\"200px\"\n class-name=\"small-padding fixed-width\"\n >\n <template slot-scope=\"scope\">\n <el-button\n size=\"mini\"\n type=\"text\"\n icon=\"el-icon-edit\"\n @click=\"handleUpdate(scope.row)\"\n v-hasPermi=\"['iot:contract:edit']\"\n >修改</el-button>\n <el-button\n size=\"mini\"\n type=\"text\"\n icon=\"el-icon-delete\"\n @click=\"handleDelete(scope.row)\"\n v-hasPermi=\"['iot:contract:remove']\"\n >删除</el-button>\n </template>\n </el-table-column>\n </el-table>\n\n <pagination\n v-show=\"total>0\"\n :total=\"total\"\n :page.sync=\"queryParams.pageNum\"\n :limit.sync=\"queryParams.pageSize\"\n @pagination=\"getList\"\n />\n\n <!-- 添加或修改电价合同对话框 -->\n <el-dialog\n class=\"eldialog-wrap\"\n :title=\"title\"\n :visible.sync=\"open\"\n width=\"720px\"\n :close-on-click-modal=\"false\"\n append-to-body\n >\n <el-form ref=\"form\" :model=\"form\" :rules=\"rules\" label-width=\"100px\">\n <el-form-item label=\"合同名称:\" prop=\"contractName\">\n <el-input v-model=\"form.contractName\" placeholder=\"请输入合同名称\" />\n </el-form-item>\n <el-row :gutter=\"20\">\n <el-col :span=\"12\">\n <el-form-item label=\"计价类型:\" prop=\"contractType\">\n <el-select\n v-model=\"form.contractType\"\n style=\"width: 100%;\"\n @change=\"contractTypeChange\"\n placeholder=\"请选择计价类型\"\n >\n <el-option\n :label=\"keys\"\n v-for=\"(keys, vals) in contractTypeOption\"\n :key=\"keys\"\n :value=\"vals\"\n />\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"状态:\">\n <el-switch\n v-model=\"form.status\"\n active-value=\"0\"\n inactive-value=\"1\"\n active-color=\"#13ce66\"\n inactive-color=\"#ff4949\"\n ></el-switch>\n </el-form-item>\n </el-col>\n </el-row>\n\n <el-form-item label=\"合同规则:\" prop>\n <el-button size=\"mini\" type=\"primary\" @click=\"handelAddRule\">添加规则</el-button>\n <div class=\"contract-gz-wrap\" v-for=\"(item, index) in form.priceContractRuleList\" :key=\"item.guid\">\n <time-picker-wrap\n :priceList=\"item\"\n :contractType=\"form.contractType\"\n :tempIndex=\"item.guid\"\n :delshow=\"form.priceContractRuleList.length >= 2\"\n :nodeMaxTime=\"returnMinTime(index)\"\n :nodeMaxVal=\"returnMaxVal(index)\"\n @resultEvent=\"resultEvent\"\n @delEvent=\"delEvent\"\n ></time-picker-wrap>\n </div>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button size=\"mini\" type=\"primary\" @click=\"submitForm\">确 定</el-button>\n <el-button size=\"mini\" @click=\"cancel\">取 消</el-button>\n </div>\n </el-dialog>\n </div>\n</template>\n\n<script>\nimport {\n listContract,\n getContract,\n delContract,\n addContract,\n updateContract,\n exportContract\n} from \"@/api/iot/contract\";\n\nimport TimePickerWrap from \"./profile/timePicker\";\n\nconst contractTypeOption = {\n PEAK_VALLEY: \"峰谷时段计价\",\n LADDER: \"阶梯计价\"\n};\n\nexport default {\n name: \"Contract\",\n components: {\n TimePickerWrap\n },\n data() {\n return {\n contractTypeOption,\n // 遮罩层\n loading: true,\n // 选中数组\n ids: [],\n // 非单个禁用\n single: true,\n // 非多个禁用\n multiple: true,\n // 显示搜索条件\n showSearch: true,\n // 总条数\n total: 0,\n // 电价合同表格数据\n contractList: [],\n // 弹出层标题\n title: \"\",\n // 是否显示弹出层\n open: false,\n // 查询参数\n queryParams: {\n pageNum: 1,\n pageSize: 10,\n contractName: null,\n contractType: null,\n status: null\n },\n // 表单参数\n form: {},\n // 表单校验\n rules: {\n contractName: [\n { required: true, message: \"请填写合同名称\", trigger: \"blur\" }\n ],\n contractType: [\n { required: true, message: \"请选择合同类型\", trigger: \"blur\" }\n ]\n }\n };\n },\n created() {\n this.getList();\n },\n methods: {\n getGuid() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(\n c\n ) {\n var r = (Math.random() * 16) | 0,\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n },\n contractTypeFormatter(row) {\n return this.contractTypeOption[row.contractType];\n },\n statusFormatter(row) {\n return row.status === \"0\" ? \"启用\" : \"禁用\";\n },\n resultEvent(data) {\n for (var i = 0; i < this.form.priceContractRuleList.length; i++) {\n if (this.form.priceContractRuleList[i][\"guid\"] === data.index) {\n this.form.priceContractRuleList[i] = data.result;\n this.$forceUpdate();\n }\n this.form.priceContractRuleList[i]['ruleNum'] = i + 1;\n }\n this.$forceUpdate();\n },\n returnMinTime(index) {\n var time =\n index >= 1\n ? this.form.priceContractRuleList[index - 1].maxTime\n : \"00:00:00\";\n return time;\n },\n returnMaxVal(index) {\n var time =\n index >= 1 ? this.form.priceContractRuleList[index - 1].maxVal : 0;\n return time;\n },\n delEvent(data) {\n for (var i = 0; i < this.form.priceContractRuleList.length; i++) {\n if (this.form.priceContractRuleList[i][\"guid\"] === data.index) {\n this.form.priceContractRuleList.splice(i, 1);\n this.$forceUpdate();\n break;\n }\n }\n },\n handelAddRule() {\n this.form.priceContractRuleList.push({\n maxTime: \"\",\n maxVal: \"\",\n minTime: \"\",\n minVal: \"\",\n ruleName: \"\",\n ruleNum: null,\n unitPrice: \"\",\n guid: this.getGuid()\n });\n },\n contractTypeChange(val) {\n this.form.priceContractRuleList = [];\n this.form.priceContractRuleList.push({\n maxTime: \"\",\n maxVal: \"\",\n minTime: \"\",\n minVal: \"\",\n ruleName: \"\",\n ruleNum: null,\n unitPrice: \"\",\n guid: this.getGuid()\n });\n },\n indexFormatter(val) {\n return (\n val + 1 + (this.queryParams.pageNum - 1) * this.queryParams.pageSize\n );\n },\n /** 查询电价合同列表 */\n getList() {\n this.loading = true;\n listContract(this.queryParams).then(response => {\n this.contractList = response.rows;\n this.total = response.total;\n this.loading = false;\n });\n },\n // 取消按钮\n cancel() {\n this.open = false;\n this.reset();\n },\n // 表单重置\n reset() {\n this.form = {\n contractId: null,\n contractName: null,\n contractType: \"PEAK_VALLEY\",\n status: \"0\",\n remark: null,\n priceContractRuleList: []\n };\n this.resetForm(\"form\");\n },\n /** 搜索按钮操作 */\n handleQuery() {\n this.queryParams.pageNum = 1;\n this.getList();\n },\n /** 重置按钮操作 */\n resetQuery() {\n this.resetForm(\"queryForm\");\n this.handleQuery();\n },\n // 多选框选中数据\n handleSelectionChange(selection) {\n this.ids = selection.map(item => item.contractId);\n this.single = selection.length !== 1;\n this.multiple = !selection.length;\n },\n /** 新增按钮操作 */\n handleAdd() {\n this.reset();\n this.open = true;\n this.title = \"添加电价合同\";\n this.form.priceContractRuleList.push({\n maxTime: \"\",\n maxVal: \"\",\n minTime: \"\",\n minVal: \"\",\n ruleName: \"\",\n ruleNum: null,\n unitPrice: \"\",\n guid: this.getGuid()\n });\n },\n /** 修改按钮操作 */\n handleUpdate(row) {\n this.reset();\n const contractId = row.contractId || this.ids;\n getContract(contractId).then(response => {\n this.form = response.data;\n var arr = [];\n response.data.priceContractRuleList.forEach(v => {\n arr.push(Object.assign(v, { guid: this.getGuid() }));\n });\n this.form.priceContractRuleList = arr || [];\n this.open = true;\n this.title = \"修改电价合同\";\n });\n },\n /** 提交按钮 */\n submitForm() {\n this.$refs[\"form\"].validate(valid => {\n if (valid) {\n if (this.form.contractId != null) {\n updateContract(this.form).then(response => {\n this.msgSuccess(\"修改成功\");\n this.open = false;\n this.getList();\n });\n } else {\n addContract(this.form).then(response => {\n this.msgSuccess(\"新增成功\");\n this.open = false;\n this.getList();\n });\n }\n }\n });\n },\n /** 删除按钮操作 */\n handleDelete(row) {\n const contractIds = row.contractId || this.ids;\n this.$confirm(\"是否删除该选项?\", \"警告\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\"\n })\n .then(function() {\n return delContract(contractIds);\n })\n .then(() => {\n this.getList();\n this.msgSuccess(\"删除成功\");\n });\n },\n /** 导出按钮操作 */\n handleExport() {\n const queryParams = this.queryParams;\n this.$confirm(\"是否确认导出所有电价合同数据项?\", \"警告\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\"\n })\n .then(function() {\n return exportContract(queryParams);\n })\n .then(response => {\n this.download(response.msg);\n });\n }\n }\n};\n</script>\n<style lang=\"scss\">\n.contract-gz-wrap {\n min-height: 50px;\n position: relative;\n display: flex;\n flex-wrap: wrap;\n top: 15px;\n border: 1px solid #a9a6a6;\n margin-bottom: 15px;\n left: -70px;\n width: calc(100% + 70px);\n padding: 10px;\n}\n</style>\n"]}]} |