|
|
|
|
import {index,destroy} from "@/api/system/customFormField";
|
|
|
|
|
import {show,save} from "@/api/system/customForm";
|
|
|
|
|
import {Message} from "element-ui";
|
|
|
|
|
|
|
|
|
|
const uploadField = [
|
|
|
|
|
{
|
|
|
|
|
"field": "original_name",
|
|
|
|
|
"name": "源名称",
|
|
|
|
|
"search_input": "text",
|
|
|
|
|
"edit_input": "text",
|
|
|
|
|
"admin_id": null,
|
|
|
|
|
"department_id": null,
|
|
|
|
|
"sort": 1,
|
|
|
|
|
"help": null,
|
|
|
|
|
"validation": [],
|
|
|
|
|
"select_item": [],
|
|
|
|
|
"list_show": 1,
|
|
|
|
|
"form_show": 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"field": "name",
|
|
|
|
|
"name": "名称",
|
|
|
|
|
"search_input": "text",
|
|
|
|
|
"edit_input": "text",
|
|
|
|
|
"admin_id": null,
|
|
|
|
|
"department_id": null,
|
|
|
|
|
"sort": 2,
|
|
|
|
|
"help": null,
|
|
|
|
|
"validation": [],
|
|
|
|
|
"select_item": [],
|
|
|
|
|
"list_show": 1,
|
|
|
|
|
"form_show": 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"field": "extension",
|
|
|
|
|
"name": "后缀名",
|
|
|
|
|
"search_input": "text",
|
|
|
|
|
"edit_input": "text",
|
|
|
|
|
"admin_id": null,
|
|
|
|
|
"department_id": null,
|
|
|
|
|
"sort": 3,
|
|
|
|
|
"help": null,
|
|
|
|
|
"validation": [],
|
|
|
|
|
"select_item": [],
|
|
|
|
|
"list_show": 1,
|
|
|
|
|
"form_show": 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"field": "size",
|
|
|
|
|
"name": "大小",
|
|
|
|
|
"search_input": "text",
|
|
|
|
|
"edit_input": "text",
|
|
|
|
|
"admin_id": null,
|
|
|
|
|
"department_id": null,
|
|
|
|
|
"sort": 4,
|
|
|
|
|
"help": null,
|
|
|
|
|
"validation": [],
|
|
|
|
|
"select_item": [],
|
|
|
|
|
"list_show": 1,
|
|
|
|
|
"form_show": 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"field": "url",
|
|
|
|
|
"name": "地址",
|
|
|
|
|
"search_input": "text",
|
|
|
|
|
"edit_input": "text",
|
|
|
|
|
"admin_id": null,
|
|
|
|
|
"department_id": null,
|
|
|
|
|
"sort": 5,
|
|
|
|
|
"help": null,
|
|
|
|
|
"validation": [],
|
|
|
|
|
"select_item": [],
|
|
|
|
|
"list_show": 1,
|
|
|
|
|
"form_show": 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"field": "folder",
|
|
|
|
|
"name": "类型",
|
|
|
|
|
"search_input": "text",
|
|
|
|
|
"edit_input": "text",
|
|
|
|
|
"admin_id": null,
|
|
|
|
|
"department_id": null,
|
|
|
|
|
"sort": 6,
|
|
|
|
|
"help": null,
|
|
|
|
|
"validation": [],
|
|
|
|
|
"select_item": [],
|
|
|
|
|
"list_show": 1,
|
|
|
|
|
"form_show": 1,
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
const state = {
|
|
|
|
|
formList: [], //更个表单配置信息
|
|
|
|
|
copyFormListId: [], //备份原始的字段id数组,以做删除
|
|
|
|
|
selectedForm: null, //当前编辑的表单字段配置
|
|
|
|
|
selectedIndex: null,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const mutations = {
|
|
|
|
|
SET_COPY_FORM_LIST_ID: (state, arr) => {
|
|
|
|
|
state.copyFormListId = arr;
|
|
|
|
|
},
|
|
|
|
|
SET_SELECTED_INDEX: (state, index) => {
|
|
|
|
|
state.selectedIndex = index;
|
|
|
|
|
},
|
|
|
|
|
CLEAR_SELECTED_INDEX: (state) => {
|
|
|
|
|
state.selectedIndex = null;
|
|
|
|
|
},
|
|
|
|
|
SET_SELECTED: (state, value) => {
|
|
|
|
|
state.selectedForm = value;
|
|
|
|
|
},
|
|
|
|
|
CLEAR_SELECTED: (state, value) => {
|
|
|
|
|
state.selectedForm = null;
|
|
|
|
|
},
|
|
|
|
|
SET_FORM_LIST: (state, list) => {
|
|
|
|
|
state.formList = list;
|
|
|
|
|
},
|
|
|
|
|
SPLICE_FORM_LIST: (state, info) => {
|
|
|
|
|
const { index, length, config } = info;
|
|
|
|
|
if (config) {
|
|
|
|
|
state.formList.splice(index, length || 0, config || state.selectedForm);
|
|
|
|
|
} else {
|
|
|
|
|
state.formList.splice(index, length || 0);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const actions = {
|
|
|
|
|
submitUpload: ({ state, commit }, tableId) => {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
show({ id: tableId }).then(res => {
|
|
|
|
|
res.fields = uploadField
|
|
|
|
|
save(res).then(res1 => {
|
|
|
|
|
Message({
|
|
|
|
|
type: 'success',
|
|
|
|
|
message: res1.msg
|
|
|
|
|
})
|
|
|
|
|
resolve(res1)
|
|
|
|
|
}).catch(err1 => {
|
|
|
|
|
reject(err1)
|
|
|
|
|
})
|
|
|
|
|
}).catch(err => {
|
|
|
|
|
reject(err)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
submit: ({ state, commit }, tableId) => {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
show({ id: tableId }).then(res => {
|
|
|
|
|
state.formList.forEach((item,index) => {
|
|
|
|
|
item.sort = index + 1
|
|
|
|
|
})
|
|
|
|
|
res.fields = state.formList
|
|
|
|
|
save(res).then(res1 => {
|
|
|
|
|
Message({
|
|
|
|
|
type: 'success',
|
|
|
|
|
message: res1.msg
|
|
|
|
|
})
|
|
|
|
|
resolve(res1)
|
|
|
|
|
}).catch(err1 => {
|
|
|
|
|
reject(err1)
|
|
|
|
|
})
|
|
|
|
|
}).catch(err => {
|
|
|
|
|
reject(err)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
// return new Promise((resolve, reject) => {
|
|
|
|
|
// state.formList.forEach((item,index) => {
|
|
|
|
|
// item.sort = index + 1
|
|
|
|
|
// })
|
|
|
|
|
// let formListId = state.formList.filter((i) => !!i.id).map((i) => i.id);
|
|
|
|
|
// let deleteIds = state.copyFormListId.filter(
|
|
|
|
|
// (i) => !formListId.includes(i)
|
|
|
|
|
// );
|
|
|
|
|
// let promiseAll = [
|
|
|
|
|
// ...state.formList.map((i) => save(i)),
|
|
|
|
|
// ...deleteIds.map((i) => destroy({ id: i })),
|
|
|
|
|
// ];
|
|
|
|
|
// Promise.all(promiseAll)
|
|
|
|
|
// .then((res) => {
|
|
|
|
|
// Message({
|
|
|
|
|
// type: "success",
|
|
|
|
|
// message: "保存成功",
|
|
|
|
|
// });
|
|
|
|
|
// resolve(res);
|
|
|
|
|
// })
|
|
|
|
|
// .catch((err) => {
|
|
|
|
|
// reject(err);
|
|
|
|
|
// });
|
|
|
|
|
// });
|
|
|
|
|
},
|
|
|
|
|
getFormList: ({ state, commit }, custom_form_id) => {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
index(
|
|
|
|
|
{
|
|
|
|
|
page: 1,
|
|
|
|
|
page_size: 999,
|
|
|
|
|
sort_name: "sort",
|
|
|
|
|
sort_type: "asc",
|
|
|
|
|
custom_form_id,
|
|
|
|
|
},
|
|
|
|
|
true
|
|
|
|
|
)
|
|
|
|
|
.then((res) => {
|
|
|
|
|
resolve(res);
|
|
|
|
|
if (res?.data instanceof Array) {
|
|
|
|
|
commit("SET_FORM_LIST", res.data);
|
|
|
|
|
commit(
|
|
|
|
|
"SET_COPY_FORM_LIST_ID",
|
|
|
|
|
res.data.map((i) => i.id)
|
|
|
|
|
);
|
|
|
|
|
} else {
|
|
|
|
|
console.warn("res.data not Array");
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
reject(err);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
deleteField: ({ state, commit, dispatch }) => {
|
|
|
|
|
if (state.selectedForm?.id) {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
destroy({ id: state.selectedForm.id }).then(res => {
|
|
|
|
|
resolve(res)
|
|
|
|
|
commit('CLEAR_SELECTED')
|
|
|
|
|
commit('CLEAR_SELECTED_INDEX')
|
|
|
|
|
}).catch(err => {
|
|
|
|
|
reject(err)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
state.formList.splice(state.selectedIndex, 1);
|
|
|
|
|
resolve(false)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
namespaced: true,
|
|
|
|
|
state,
|
|
|
|
|
mutations,
|
|
|
|
|
actions,
|
|
|
|
|
};
|