diff --git a/app/src/components/AssetGroup.vue b/app/src/components/AssetGroup.vue
index 90f162f..67cdefc 100644
--- a/app/src/components/AssetGroup.vue
+++ b/app/src/components/AssetGroup.vue
@@ -169,7 +169,7 @@
-
+
mdi-delete
@@ -193,7 +193,7 @@
{{item.isselect === 'true' ? '選項':'文字'}}
- {{item.isselect === 'true' ? '是':'否'}}
+ {{item.isrequire === 'true' ? '是':'否'}}
{{item.isselect === 'true' ? '是':'否'}}
@@ -258,12 +258,14 @@
:label='header.text'
v-model="insertColItem[header.value]"
hint='必填'
+ persistent-hint
v-on:input='oninput(insertColItem, header.value, $event)'
/>
{
console.log(resp.data.data);
this.modifySelectItems = resp.data.data;
+ console.log(this.modifySelectItems);
});
},
closeDialogModifySelectItem() {
@@ -707,14 +716,27 @@
});
},
insertCol() {
+ console.log(this.insertColItem);
+ // eslint-disable-next-line no-constant-condition
+ // if (1 === 1 ) return;
this.insertColItem.issearch = 'true';
this.insertColItem.isexport = 'true';
- this.insertColItem.isrequire = 'true';
- console.log(this.insertColItem);
+ // this.insertColItem.isrequire = 'true';
let stop;
+ // const pattern = new RegExp("[\u4E00-\u9FA5]+");
+ const pattern1 = new RegExp('\\w');
+ const pattern2 = new RegExp('^[A-Z]+|^[a-z]+');
+ const pattern3 = new RegExp('\\s');
+ if (!pattern1.test(this.insertColItem.colname) || !pattern2.test(this.insertColItem.colname) || pattern3.test(this.insertColItem.colname)) {
+ alert('1.資料庫欄位名稱限定使用英文及數字\n' +
+ '2.首位須為英文\n' +
+ '3.不得有空白');
+ stop = true;
+ return;
+ }
+
for (const key in this.insertColItem) {
if (this.insertColItem[key] === '' && key !== 'tablename' && key !== 'insertSelectItems' && key !== 'modifySelectItems' && key !== 'isselect' && key !== 'descript2') {
- alert(key);
alert('所有資料不可為空');
stop = true;
return;
@@ -734,12 +756,11 @@
this.getCols();
this.close();
this.insertSelectItems = [];
- // delete this.insertColItem.tablename;
- // delete this.insertColItem.insertselectItems;
- this.insertColItem = {};
- // Object.keys(this.insertColItem).forEach((key) => {
- // this.insertColItem[key] = '';
- // });
+ delete this.insertColItem.tablename;
+ delete this.insertColItem.insertselectItems;
+ Object.keys(this.insertColItem).forEach((key) => {
+ this.insertColItem[key] = '';
+ });
alert('已新增');
}
);
@@ -776,7 +797,7 @@
for (const key in this.modifyColItem) {
if (this.modifyColItem[key] === '' && key !== 'level'
&& key !== 'insertSelectItems' && key !== 'modifySelectItems'
- && key !== 'oldIndex' && key !== 'type') {
+ && key !== 'oldIndex' && key !== 'type' && key !== 'descript2') {
console.log(key);
alert('所有資料不可為空');
stop = true;
diff --git a/app/src/components/Inventory.vue b/app/src/components/Inventory.vue
index a69a5ec..9f73ab2 100644
--- a/app/src/components/Inventory.vue
+++ b/app/src/components/Inventory.vue
@@ -19,7 +19,7 @@
-
{
delete this.insertItem.tablename;
@@ -504,6 +513,15 @@
return this.isrequired.indexOf(key) >= 0;
},
modifyOne() {
+ let stop;
+ for (const key in this.modifyItem) {
+ if (this.isRequire(key) && (this.modifyItem[key] === '' || this.modifyItem[key] === null)) {
+ alert(`必填欄位不可為空`);
+ stop = true;
+ return;
+ }
+ }
+ if (stop === true) return;
this.modifyItem.tablename = this.tablename;
this.$axios.put(`/inventory?`, this.modifyItem).then(() => {
this.getInventories();
diff --git a/app/src/components/TypeManage.vue b/app/src/components/TypeManage.vue
index 9f4740c..8e85622 100644
--- a/app/src/components/TypeManage.vue
+++ b/app/src/components/TypeManage.vue
@@ -102,7 +102,7 @@
v-if="!(header.text === '說明' || header.text === '範例' || header.text === '')"
:label='header.text'
:value="insertColItem[header.value]"
- hint='必填'
+ :hint="'CIA'.indexOf(header.text) < 0?'必填':''"
v-on:input='oninput(insertColItem, header.value, $event)'
/>
@@ -234,7 +234,7 @@
insertColItem: {},
modifyColItem: {},
currentTab: 0,
- cols: [],
+ cols: [{}],
oldId: '',
level: parseInt(localStorage.getItem('level'))
}
@@ -312,13 +312,23 @@
stop = true;
return;
}
- this.cols.forEach((col) => {
+ for (let i = 0; i < this.cols.length; i++) {
+ let col = this.cols[i];
+ // eslint-disable-next-line no-prototype-builtins
if (col.type === this.insertColItem.type) {
alert('項次不可重複');
stop = true;
return;
}
- });
+ }
+ for (let i = 0; i < this.headers.length; i++) {
+ let col = this.headers[i];
+ if ('CIA'.indexOf(col.text) < 0 && col.value !== 'actions' && (!this.insertColItem[col.value] || this.insertColItem[col.value] === '')) {
+ alert('必填欄位不可為空');
+ stop = true;
+ return;
+ }
+ }
if (stop === true) return;
this.insertColItem.tablename = this.assertGroup[this.currentTab].value;
this.$axios.post(`/type`, this.insertColItem).then(() => {
diff --git a/src/main/java/com/moze/rms/dao/InventoryDAO.java b/src/main/java/com/moze/rms/dao/InventoryDAO.java
index dc5c7f3..28dbf4c 100644
--- a/src/main/java/com/moze/rms/dao/InventoryDAO.java
+++ b/src/main/java/com/moze/rms/dao/InventoryDAO.java
@@ -59,7 +59,7 @@ public interface InventoryDAO extends SqlObject {
while (iterator.hasNext()) {
Map.Entry next = iterator.next();
String key = next.getKey();
- Object value = next.getValue();
+ Object value = next.getValue() != null ? next.getValue().toString() : "";
System.out.println(key);
if (key != "tablename" && key != "id") {
cols += "[" + key + "], ";
@@ -93,6 +93,7 @@ public interface InventoryDAO extends SqlObject {
}
}
sql = sql.substring(0, sql.length() - 4);
+ System.out.println(sql);
return handle.createQuery(sql).mapTo(Integer.class).one();
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 857e529..74f9c1d 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,5 +1,5 @@
-#spring.profiles.active=dev
-spring.profiles.active=pro
+spring.profiles.active=dev
+#spring.profiles.active=pro
server.servlet.context-path=/rms
spring.servlet.multipart.max-file-size=100MB