Docpre.vue 7.67 KB
Newer Older
jianglong committed
1 2 3
<!-- 单据表格模块 -->


4
        <!-- 前后端字段path及前后端字段docgrdm.docgrd   后端docgrd为List<Docgrd>类型 -->
wangyanjiao committed
5 6
<template>
    <div>
7
        
wangyanjiao committed
8
        <c-col :span="24" style="margin-bottom: 30px;">
9
            <el-form-item :prop="`${argadr.grp}.${rol}.docgrd`" label="" style="margin-left:-150px;">
10
                <c-table max-height="300px" style="text-align: center;" stripe
11 12
                    :list="this.model[argadr.grp][rol].docgrd || []" :paginationShow="false" :border="true">
                    <el-table-column :label="model[argadr.grp][rol].docdsclab || '提交单据'" class="messageLabel">
13 14 15 16 17 18
                        <el-table-column label="1st" width="auto" prop="cmail1" background-color="red">
                            <template slot-scope="scope">
                                <c-input v-model="scope.row.cmail1" @change="docpre" :disabled="disabledCmail1"
                                    maxlength="12">
                                </c-input>
                            </template>
wangyanjiao committed
19

20 21 22 23 24 25 26 27
                        </el-table-column>
                        <el-table-column label="2nd" width="auto" prop="cmail2">
                            <template slot-scope="scope">
                                <c-input v-model="scope.row.cmail2" @change="docpre" :disabled="disabledCmail2"
                                    maxlength="12">
                                </c-input>
                            </template>
                        </el-table-column>
28
                        <el-table-column label="单据" prop="docnam" width="auto">
29
                            <template slot="header" slot-scope="scope">
zhujiazhan committed
30
                                <c-row>
31 32 33 34 35
                                    <c-col :span="12">
                                        <span style="line-height: 36px;">Document</span>
                                    </c-col>
                                    <c-col :span="12">
                                        <div style="float: right;">
Wuyuqiu committed
36 37
                                            <c-button  @click="addTableValue" v-if="ifShowAdd"></c-button><br>
                                            <c-button  @click="deleteTable" v-if="ifShowDelete"></c-button>
38 39
                                        </div>
                                    </c-col>
zhujiazhan committed
40
                                </c-row>
41 42 43 44 45 46 47 48 49 50 51 52

                            </template>
                            <template slot-scope="scope">
                                <!-- {{scope.row.docnam}} -->
                                <c-select style="width: 100%" placeholder="请选择" v-model="scope.row.docnam"
                                    :disabled="disabledDocnam">
                                    <el-option v-for="item in codes[argadr.code]" :key="item.value" :label="item.label"
                                        @change="docpre" :value="item.value">
                                    </el-option>
                                </c-select>
                            </template>
                        </el-table-column>
53 54 55
                    </el-table-column>
                </c-table>
            </el-form-item>
wangyanjiao committed
56
        </c-col>
57

wangyanjiao committed
58 59 60 61
    </div>
</template>
<script>
import commonProcess from "~/mixin/commonProcess";
62 63 64
import CodeTable from "~/config/CodeTable";
import Event from "~/model/Botdcr/Event"
import Utils from "~/utils";
wangyanjiao committed
65 66
export default {

67

wangyanjiao committed
68 69 70 71 72 73 74
    inject: ["root"],
    mixins: [commonProcess],


    data() {
        return {
            data: [],
75 76 77 78 79 80 81 82 83 84 85 86 87


            codes: { ...CodeTable },
            newValue: {
                id: 0,
                cmail1: "",
                cmail2: "",
                docnam: "",
                description: "",
                serialNum: "",
                tableName: "",
                tcddoc: "",
            },
wangyanjiao committed
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
        };
    },
    watch: {},

    props: {
        model: {
            type: Object,
            default: undefined,
        },
        argadr: {
            type: Object,
            default: function () {
                return {
                    grp: "", //所属模块  eg:bdtp,botp...
                    path: "",    // path为存储数据字段所对应的default方法
103
                    code: "",   //表格选项码表参数
wangyanjiao committed
104 105 106
                };
            },
        },
107 108 109 110
        rol: {
            type: String,
            default: "docgrdm",
        },
wangyanjiao committed
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
        disabledCmail1: {
            type: Boolean,
            default: false,
        },
        disabledCmail2: {
            type: Boolean,
            default: false,
        },
        disabledDocnam: {
            type: Boolean,
            default: false,
        },
        ifShowAdd: {
            type: Boolean,
            default: true,
        },
        ifShowDelete: {
            type: Boolean,
            default: true,
        },
    },



    methods: {
        ...Event,
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
        setColSpan: function () {
            // console.log(this.$el.getElementsByClassName("el-table__header"))
            // 获取表头的所有单元格
            var x = this.$el.getElementsByClassName("el-table__header")
            console.log(x)
            var x1 = this.$el.getElementsByClassName("el-table__header")[0].rows[1].cells
            var x2 = this.$el.getElementsByClassName("el-table__header")[0].rows[0].cells

            x1[2].colSpan = 2   // document
            // 将gutter的display设为none
            x1[3].style.display = 'none'    //gutter

            x2[0].colSpan = 4   //  docdsclab
            // x2[0].style.background-color = '#FFF'
            // 将gutter的display设为none
            x2[1].style.display = 'none'    //gutter


        },
wangyanjiao committed
156 157 158
        addTableValue(index) {
            var newTableValue = Object.assign({}, this.newValue);
            const serial = Utils.generateUUID();
159
            var grp = this.argadr.grp;
wangyanjiao committed
160
            newTableValue.serialNum = serial;
161
            // this.model[argadr.grp].docgrdm.docgrd.splice(index - 1, 0, newTableValue);
162
            this.model[grp][rol].docgrd.splice(index - 1, 0, newTableValue);
wangyanjiao committed
163 164
        },
        deleteTable(index) {
165 166
            // 'this.model.${argadr.grp}.docgrdm.docgrd.splice(index, 1)';
            var grp = this.argadr.grp;
167
            this.model[grp][rol].docgrd.splice(index, 1);
wangyanjiao committed
168 169 170 171 172 173 174 175 176 177 178 179 180 181
        },
        async docpre() {
            let rtnmsg = await this.executeDefault(this.argadr.path)
            // let rtnmsg = await this.executeDefault('bodgrp.blk.docpre')
            if (rtnmsg.respCode == SUCCESS) {
                //TODO 处理数据逻辑
                this.updateModel(rtnmsg.data)
            }
            else {
                this.$notify.error({ title: '错误', message: '服务请求失败!' });
            }
        },
    },
    created: function () {
182 183 184 185 186 187
    },
    mounted() {
        // 注意一定要保证DOM渲染完成后在进行合并操作,否则会找不到元素
        this.$nextTick(function () {
            this.setColSpan();
        })
wangyanjiao committed
188 189 190
    }
};

191 192


wangyanjiao committed
193 194 195 196 197 198 199
</script>
<style>
.messageLabel>>>.el-form-item__label {
    text-align: left;
    font-weight: bold;
    font-size: 12px;
}
200

Wuyuqiu committed
201 202
/* .add_del_button:hover {
    cursor: pointer; 
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218
    background-color: rgb(230, 227, 227);
}

.add_del_button {
    display: block;
    flex: 0;
    line-height: 15px;
    text-align: center;
    font-size: 12px;
    border-radius: 5px;
    border: 1px solid rgb(194, 192, 192);
    background-color: rgb(240, 240, 240);
}

.add_button {
    margin-bottom: 2px;
Wuyuqiu committed
219
} */
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241

/* body .el-table th.gutter {
    display: table-cell !important;
    height:0px;
    font-weight: 0px;
    border-bottom: 1px solid #bbb !important;
    position: absolute;
    right:0;
    top: 0;

} */

/* 
.gutter {
    display: none;
    width: 0px !important;
    background: rgb(51, 51, 51);
}

tr {
    background: rgb(51, 51, 51);
} */
wangyanjiao committed
242
</style>