From d35c5cac9aa1ecdd064320e1253de0686da6cdf8 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 12 三月 2026 14:02:16 +0800
Subject: [PATCH] #
---
src/main/webapp/views/basMap/basMap.html | 24 +++++++
src/main/webapp/static/js/basMap/basMap.js | 113 +++++++++++++++++++++++++++++++++++++
2 files changed, 134 insertions(+), 3 deletions(-)
diff --git a/src/main/webapp/static/js/basMap/basMap.js b/src/main/webapp/static/js/basMap/basMap.js
index bc41975..bf30ac2 100644
--- a/src/main/webapp/static/js/basMap/basMap.js
+++ b/src/main/webapp/static/js/basMap/basMap.js
@@ -818,6 +818,8 @@
primaryKeyField: primaryKeyField,
loading: false,
exporting: false,
+ importingMap: false,
+ initializingLocMast: false,
tableData: [],
selection: [],
advancedFiltersVisible: false,
@@ -880,8 +882,12 @@
});
},
editableFields: function () {
+ var editableKeys = {
+ lev: true,
+ originData: true
+ };
return this.fieldMeta.filter(function (field) {
- return !field.primaryKey;
+ return editableKeys[field.field];
});
},
exportColumns: function () {
@@ -1097,6 +1103,109 @@
}
});
},
+ buildDialogPayload: function () {
+ var self = this;
+ var payload = {};
+ if (!isEmptyValue(self.dialogForm[self.primaryKeyField])) {
+ payload[self.primaryKeyField] = self.dialogForm[self.primaryKeyField];
+ }
+ self.editableFields.forEach(function (field) {
+ var value = self.dialogForm[field.field];
+ if (field.valueType === 'number' && !isEmptyValue(value)) {
+ value = Number(value);
+ }
+ if (field.valueType === 'number' && value === '') {
+ value = null;
+ }
+ payload[field.field] = value;
+ });
+ return payload;
+ },
+ triggerMapImport: function () {
+ var uploadInput = this.$refs.mapUploadInput;
+ if (!uploadInput) {
+ this.$message.error('涓婁紶鎺т欢鏈噯澶囧ソ');
+ return;
+ }
+ uploadInput.value = '';
+ uploadInput.click();
+ },
+ handleMapFileChange: function (event) {
+ var self = this;
+ var uploadInput = event && event.target ? event.target : self.$refs.mapUploadInput;
+ var file = uploadInput && uploadInput.files ? uploadInput.files[0] : null;
+ var formData;
+ if (!file) {
+ return;
+ }
+ formData = new FormData();
+ formData.append('file', file);
+ self.importingMap = true;
+ $.ajax({
+ url: baseUrl + '/basMap/crn/upload',
+ method: 'POST',
+ headers: self.authHeaders(),
+ data: formData,
+ processData: false,
+ contentType: false,
+ success: function (res) {
+ if (self.handleForbidden(res)) {
+ return;
+ }
+ if (!res || res.code !== 200) {
+ self.$message.error((res && res.msg) ? res.msg : '瀵煎叆澶辫触');
+ return;
+ }
+ self.$message.success(res.msg || '瀵煎叆鎴愬姛');
+ self.loadTable();
+ },
+ error: function () {
+ self.$message.error('瀵煎叆澶辫触');
+ },
+ complete: function () {
+ self.importingMap = false;
+ if (uploadInput) {
+ uploadInput.value = '';
+ }
+ }
+ });
+ },
+ promptInitLocMast: function () {
+ var self = this;
+ self.$prompt('璇疯緭鍏ュ垵濮嬪寲搴撲綅灞傛暟', '鍒濆鍖栧簱浣�', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ inputPattern: /^\d+$/,
+ inputErrorMessage: '璇疯緭鍏ユ暟瀛楀眰鏁�'
+ }).then(function (payload) {
+ self.initializingLocMast = true;
+ $.ajax({
+ url: baseUrl + '/locMast/init',
+ method: 'POST',
+ headers: self.authHeaders(),
+ data: {
+ lev: $.trim(payload && payload.value ? payload.value : '')
+ },
+ success: function (res) {
+ if (self.handleForbidden(res)) {
+ return;
+ }
+ if (!res || res.code !== 200) {
+ self.$message.error((res && res.msg) ? res.msg : '鍒濆鍖栧け璐�');
+ return;
+ }
+ self.$message.success(res.msg || '鍒濆鍖栨垚鍔�');
+ self.loadTable();
+ },
+ error: function () {
+ self.$message.error('鍒濆鍖栧け璐�');
+ },
+ complete: function () {
+ self.initializingLocMast = false;
+ }
+ });
+ }).catch(function () {});
+ },
submitDialog: function () {
var self = this;
if (!self.$refs.dialogForm) {
@@ -1111,7 +1220,7 @@
url: baseUrl + '/' + simpleEntityName + '/' + (self.dialog.mode === 'create' ? 'add' : 'update') + '/auth',
method: 'POST',
headers: self.authHeaders(),
- data: buildPayload(self.dialogForm),
+ data: self.buildDialogPayload(),
success: function (res) {
self.dialog.submitting = false;
if (self.handleForbidden(res)) {
diff --git a/src/main/webapp/views/basMap/basMap.html b/src/main/webapp/views/basMap/basMap.html
index b5f6011..c001131 100644
--- a/src/main/webapp/views/basMap/basMap.html
+++ b/src/main/webapp/views/basMap/basMap.html
@@ -412,6 +412,22 @@
<div class="toolbar-ops">
<el-button size="small" type="primary" plain icon="el-icon-plus" @click="openCreateDialog">鏂板</el-button>
<el-button size="small" type="danger" plain icon="el-icon-delete" :disabled="selection.length === 0" @click="removeSelection">鍒犻櫎</el-button>
+ <el-button
+ size="small"
+ plain
+ icon="el-icon-upload2"
+ :loading="importingMap"
+ @click="triggerMapImport">
+ 瀵煎叆鍦板浘
+ </el-button>
+ <el-button
+ size="small"
+ plain
+ icon="el-icon-refresh"
+ :loading="initializingLocMast"
+ @click="promptInitLocMast">
+ 鍒濆鍖栧簱浣�
+ </el-button>
<el-popover
placement="bottom"
width="320"
@@ -580,7 +596,7 @@
<el-dialog
class="dialog-panel"
- :title="dialog.mode === 'create' ? '鏂板 BasMap' : '淇敼 BasMap'"
+ :title="dialog.mode === 'create' ? '鏂板鍦板浘' : '淇敼鍦板浘'"
:visible.sync="dialog.visible"
width="760px"
:close-on-click-modal="false">
@@ -659,6 +675,12 @@
<el-button type="primary" :loading="dialog.submitting" @click="submitDialog">淇濆瓨</el-button>
</div>
</el-dialog>
+
+ <input
+ ref="mapUploadInput"
+ type="file"
+ style="display:none;"
+ @change="handleMapFileChange">
</div>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
--
Gitblit v1.9.1