| | |
| | | <template>
|
| | | <div></div>
|
| | | <FormTempalte
|
| | | ref="FormTempalte"
|
| | | :visible="visible"
|
| | | :selfColumnType="selfColumnType"
|
| | | :selfColumnConfig="selfColumnConfig"
|
| | | :columnList="columnList"
|
| | | ></FormTempalte>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import { getCodeRule } from "@/api/formTemplate.js";
|
| | |
|
| | | import FormTempalte from "./FormTempalte.vue";
|
| | | export default {
|
| | | name: "CodeApply",
|
| | | components: { FormTempalte },
|
| | | props: {
|
| | | visible: {
|
| | | type: Boolean,
|
| | | default: false
|
| | | },
|
| | | codeClassifyOid: {
|
| | | type: String,
|
| | | default: ''
|
| | | }
|
| | | default: "",
|
| | | },
|
| | | },
|
| | | data() {
|
| | | return {
|
| | | secVOList: [],
|
| | | formItems: [],
|
| | | trendsSpan: 8
|
| | | trendsSpan: 8,
|
| | | selfColumnType: {
|
| | | codefixedsec: "combox",
|
| | | codeclassifysec: "refer",
|
| | | codevariablesec: "text",
|
| | | coderefersec: "refer",
|
| | | },
|
| | | selfColumnConfig: {
|
| | | function: {
|
| | | required: this.isRequired,
|
| | | dicData: this.getOptionList,
|
| | | type: this.getType,
|
| | | },
|
| | | exchange: {
|
| | | text: "name",
|
| | | field: "oid",
|
| | | prop: "oid",
|
| | | showField: "name",
|
| | | parentClassifySecOid: "parentClassifySecOid",
|
| | | label: "name",
|
| | | maxlength: "codeSecLength",
|
| | | data: "fixedValueVOList",
|
| | | },
|
| | | directVoluation: {
|
| | | search: true,
|
| | | props: {
|
| | | label: "id",
|
| | | value: "id",
|
| | | },
|
| | | },
|
| | | },
|
| | | columnList: [],
|
| | | };
|
| | | },
|
| | | created() {
|
| | | this.handleResize();
|
| | | this.getCodeRule();
|
| | | },
|
| | | mounted() {
|
| | | |
| | | },
|
| | | mounted() {},
|
| | | methods: {
|
| | | getType(item) {
|
| | | return this.selfColumnType[item.sectype];
|
| | | },
|
| | | getCodeRule() {
|
| | | getCodeRule({ codeClassifyOid: this.codeClassifyOid }).then((res) => {
|
| | | if (res.data && res.data.code === 200) {
|
| | | this.defaultValue = res.data.data;
|
| | | this.secVOList = res.data.data.secVOList || [];
|
| | | this.columnList = res.data.data.secVOList || [];
|
| | | console.log(res.data.data.secVOList, 'res.data.data.secVOList');
|
| | | this.codeRuleOid = res.data.data.oid;
|
| | | this.$nextTick(() => {
|
| | | this.$refs.FormTempalte.init(res.data.data.secVOList)
|
| | | })
|
| | | }
|
| | | });
|
| | | },
|
| | |
| | | let windowWidth = document.body.clientWidth;
|
| | | this.trendsSpan = 24 / Math.floor(windowWidth / 500);
|
| | | },
|
| | | isRequired(item) {
|
| | | return item.nullableFlag != "true";
|
| | | },
|
| | | getOptionList(item) {
|
| | | if (
|
| | | Array.isArray(item.fixedValueVOList) &&
|
| | | item.fixedValueVOList.length > 0
|
| | | ) {
|
| | | const configAttr = {
|
| | | key: "id",
|
| | | value: "id",
|
| | | };
|
| | | const optionList = item.fixedValueVOList.map((item) => {
|
| | | for (const key in configAttr) {
|
| | | if (Object.hasOwnProperty.call(configAttr, key)) {
|
| | | const element = configAttr[key];
|
| | | item[key] = item[element];
|
| | | }
|
| | | }
|
| | | return item;
|
| | | });
|
| | | return optionList;
|
| | | } else {
|
| | | return [];
|
| | | }
|
| | | },
|
| | | },
|
| | | watch: {
|
| | | secVOList: {
|
| | | deep: true,
|
| | | handler(newV) {
|
| | | this.formItems = [];
|
| | | newV.forEach((item) => {
|
| | | let itemObj = {};
|
| | | let options = [];
|
| | | //固定码段
|
| | | if (item.sectype == "codefixedsec") {
|
| | | options = item.fixedValueVOList.map((item) => {
|
| | | item.key = item.id;
|
| | | item.value = item.id;
|
| | | });
|
| | | itemObj = {
|
| | | field: item.oid,
|
| | | title: item.name,
|
| | | required: item.nullableFlag != "true",
|
| | | type: "combox",
|
| | | data: options,
|
| | | search: true,
|
| | | };
|
| | | //可变码段
|
| | | } else if (item.sectype == "codevariablesec") {
|
| | | itemObj = {
|
| | | field: item.oid,
|
| | | title: item.name,
|
| | | required: item.nullableFlag != "true",
|
| | | type: "text",
|
| | | };
|
| | | }
|
| | | itemObj.span = item.type === "textarea" ? 24 : this.trendsSpan,
|
| | | this.formItems.push(itemObj);
|
| | | });
|
| | | },
|
| | | },
|
| | | },
|
| | | };
|
| | | </script>
|