1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <template>
- <el-dialog
- class="element-prop-edit edit-dialog"
- :visible.sync="openElementEditDialog"
- :title="title"
- top="10vh"
- width="640px"
- :close-on-click-modal="false"
- :close-on-press-escape="false"
- :before-close="cancel"
- append-to-body
- >
- <component
- :is="curEditComponent"
- :instance="curElement"
- @modified="modified"
- :key="curElement.id"
- ref="ComponentForm"
- ></component>
- <div slot="footer">
- <el-button type="primary" @click="submit">确认</el-button>
- <el-button @click="cancel">取消</el-button>
- </div>
- </el-dialog>
- </template>
- <script>
- import { mapState, mapMutations, mapActions } from "vuex";
- import { getElementName, getElementDesc } from "../elements/model";
- import EditFillLine from "../elements/fill-line/EditFillLine";
- import EditFillQuestion from "../elements/fill-question/EditFillQuestion";
- import EditText from "../../../elements/text/EditText";
- import EditImage from "../../../elements/image/EditImage";
- import EditLine from "../../../elements/line/EditLine";
- import EditLines from "../../../elements/lines/EditLines";
- import EditGrids from "../../../elements/grids/EditGrids";
- import EditPane from "../../../elements/pane/EditPane";
- import EditBarcode from "../../../elements/barcode/EditBarcode";
- import EditFillNumber from "../../../elements/fill-number/EditFillNumber";
- import EditFillField from "../../../elements/fill-field/EditFillField";
- import EditFillTable from "../../../elements/fill-table/EditFillTable";
- import EditFillPane from "../../../elements/fill-pane/EditFillPane";
- export default {
- name: "element-prop-edit",
- components: {
- EditFillLine,
- EditFillQuestion,
- EditFillNumber,
- EditFillField,
- EditFillTable,
- EditFillPane,
- EditText,
- EditImage,
- EditLine,
- EditLines,
- EditGrids,
- EditPane,
- EditBarcode
- },
- data() {
- return {};
- },
- computed: {
- ...mapState("free", ["curElement", "openElementEditDialog"]),
- title() {
- return this.curElement.type
- ? getElementName(this.curElement.type)
- : "属性编辑";
- },
- curEditComponent() {
- if (!this.curElement.type) return;
- let type = this.curElement.type.toLowerCase().replace("_", "-");
- if (type.indexOf("line-") === 0) type = "line";
- return `edit-${type}`;
- }
- },
- methods: {
- ...mapMutations("free", ["setOpenElementEditDialog"]),
- ...mapActions("free", ["modifyElement"]),
- cancel() {
- this.setOpenElementEditDialog(false);
- },
- open() {
- this.setOpenElementEditDialog(true);
- },
- submit() {
- this.$refs.ComponentForm.submit();
- },
- modified(element) {
- element.desc = getElementDesc(element);
- this.modifyElement(element);
- this.cancel();
- }
- }
- };
- </script>
|