| | |
| | | <template :slot="item.prop + ''" v-for="item in slotColumnList"> |
| | | <vciWebRefer |
| | | v-if="item.type == 'refer'" |
| | | :value="item.value" |
| | | :options="item.referConfig || {}" |
| | | :referConfig="item.referConfig || {}" |
| | | :value="form[item.referConfig.field] || item.value" |
| | | :text="form[item.referConfig.showField]" |
| | | @setReferValue="setReferValue" |
| | | ></vciWebRefer> |
| | | </template> |
| | | </avue-form> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getFormTemplate, getFormDetail } from "@/api/formTemplate"; |
| | | import { getFormDetail } from "@/api/formTemplate"; |
| | | import { getDictionary } from "../../api/system/dict"; |
| | | import vciWebRefer from "../refer/vciWebRefer.vue"; |
| | | export default { |
| | |
| | | this.handleResize(); |
| | | }, |
| | | methods: { |
| | | // 初始化 |
| | | init(columnList) { |
| | | if (Array.isArray(columnList)) { |
| | | this.templateRender(columnList); |
| | | } else { |
| | | this.getFormTemplate(); |
| | | } |
| | | }, |
| | | // 接口获取表单数据 |
| | | getFormTemplate() { |
| | | getFormTemplate({ |
| | | templateOid: this.templateOid, |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | }) |
| | | .then((res) => { |
| | | if (res.status === 200) { |
| | | this.templateRender(this.testItems); |
| | | // 测试数据展示 |
| | | // this.templateRender(res.data.formDefineVO.items); |
| | | this.$emit("getFormTemplateEnd", res.data); |
| | | } |
| | | }) |
| | | .catch((err) => { |
| | | this.loading = false; |
| | | console.log(err); |
| | | }); |
| | | }, |
| | | // 渲染表单模板 |
| | | templateRender(formItemList) { |
| | | // 无需分组数据 |
| | |
| | | display: !formItem.hidden, |
| | | maxlength: formItem.maxlength, |
| | | filterable: true, |
| | | referConfig: formItem.referConfig, |
| | | change: () => { |
| | | this.changeFun(formItem.displayExtension, formItem.prop); |
| | | }, |
| | | referConfig:formItem.type=='refer'?{ |
| | | title:formItem.text , |
| | | showField:formItem.showField || formItem.field, |
| | | field: formItem.field, |
| | | placeholder: formItem.inputTip, |
| | | options:formItem.referConfig |
| | | }:{}, |
| | | span: formItem.type === "textarea" ? 24 : this.trendsSpan, |
| | | rules: [ |
| | | { |
| | |
| | | this.$set(this.option, "column", column); |
| | | this.$set(this.option, "group", group); |
| | | this.formIndex++; |
| | | this.loading = false; |
| | | if (this.type === 'add') { |
| | | this.loading = false; |
| | | } |
| | | this.geDictData(dictKeys); |
| | | // 测试数据展示 |
| | | // this.getFormDetail(); |
| | | this.getFormDetail(); |
| | | }, |
| | | // 使用传入的表单数据配置 |
| | | resetFormConfig(formItem) { |
| | |
| | | return val; |
| | | } |
| | | }, |
| | | changeFun(displayExtension, prop) { |
| | | // executeCode({displayExtension, data: this.form}).then(res => { |
| | | // this.form[prop] = res.data.data |
| | | // }) |
| | | }, |
| | | // 获取swich和已拿到的下拉数据 |
| | | getDataList(type, dicData) { |
| | | if (type === "truefalse") { |
| | |
| | | // 表单校验 |
| | | validate() { |
| | | return new Promise((resolve) => { |
| | | this.$refs.form.validate((valid, done, msg) => { |
| | | console.error(msg, valid); |
| | | this.$refs.form.validate((valid, done) => { |
| | | if (valid) { |
| | | done(); |
| | | resolve(true); |
| | |
| | | }, |
| | | // 获取表单详情数据 |
| | | getFormDetail() { |
| | | if (this.type === "add") return; |
| | | if (this.type === 'add') return |
| | | getFormDetail({ templateOid: this.templateOid, oid: this.rowOid }).then( |
| | | (res) => { |
| | | console.log(res, "res"); |
| | | this.form = Object.assign(this.form, res.data.data[0]) |
| | | this.loading = false; |
| | | } |
| | | ); |
| | | }, |
| | | setReferValue(data){ |
| | | if(data.field){ |
| | | this.form[data.field]=data.value || ''; |
| | | this.form[data.showField]=data.text || ''; |
| | | this.$emit("getFormData", this.form); |
| | | } |
| | | } |
| | | }, |
| | | watch: { |
| | | // 表单数据修改反馈到父组件 |