You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

247 lines
5.7 KiB

2 years ago
import {index,destroy} from "@/api/system/customFormField";
3 years ago
import {show,save} from "@/api/system/customForm";
import {Message} from "element-ui";
2 years ago
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,
}
]
3 years ago
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 = {
2 years ago
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)
})
})
},
3 years ago
submit: ({ state, commit }, tableId) => {
3 years ago
return new Promise((resolve, reject) => {
3 years ago
show({ id: tableId }).then(res => {
state.formList.forEach((item,index) => {
item.sort = index + 1
})
res.fields = state.formList
save(res).then(res1 => {
3 years ago
Message({
3 years ago
type: 'success',
message: res1.msg
})
resolve(res1)
}).catch(err1 => {
reject(err1)
3 years ago
})
3 years ago
}).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);
// });
// });
3 years ago
},
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);
});
});
},
2 years ago
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)
})
}
}
3 years ago
};
export default {
namespaced: true,
state,
mutations,
actions,
};