Browse Source

修改公务出访编辑

wangh 1 year ago
parent
commit
09ad700ed7

+ 6 - 2
src/components/Resource/OfficialActivities.vue

@@ -98,7 +98,7 @@ export default {
         },
         //团组下拉框
         GetGroupAllList() {
-            var url = "/api/Groups/GetGroupAllList"
+            var url = "/api/Resource/GetGroupAllList"
             var that = this
             this.$axios({
                 method: 'post',
@@ -106,9 +106,13 @@ export default {
                 headers: {
                     Authorization: 'Bearer ' + this.token
                 },
+                data: {
+                    diid: that.diId
+                }
             }).then(function (res) {
                 if (res.data.code == 200) {
-                    that.delegationInfoList = res.data.data;
+                    debugger
+                    that.delegationInfoList = res.data.data.delegation;
                     that.DiId = that.delegationInfoList[0].id;
                     that.delegationInfo = that.delegationInfoList[0];
                     that.QueryOfficialActivitiesByDiId()

+ 289 - 51
src/components/Resource/OpOfficialActivities.vue

@@ -44,26 +44,30 @@
                 <div style="display: flex;">
                     <div style="width: 25%;">
                         <el-form-item label="公务单位:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="公务单位" v-model="OpOfficialActivitiesDto.email">
+                            <el-input clearable placeholder="公务单位" v-model="OpOfficialActivitiesDto.client">
                             </el-input>
                         </el-form-item>
                     </div>
                     <div style="width: 25%;">
                         <el-form-item label="公务日期:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="公务日期" v-model="OpOfficialActivitiesDto.email">
-                            </el-input>
+                            <el-date-picker v-model="OpOfficialActivitiesDto.date" type="date" placeholder="选择公务日期">
+                            </el-date-picker>
                         </el-form-item>
                     </div>
                     <div style="width: 25%;">
                         <el-form-item label="公务时刻:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="公务时刻" v-model="OpOfficialActivitiesDto.email">
-                            </el-input>
+                            <el-time-picker v-model="OpOfficialActivitiesDto.time" format='HH:mm' value-format="HH:mm"
+                                placeholder="公务时刻">
+                            </el-time-picker>
+
                         </el-form-item>
                     </div>
                     <div style="width: 25%;">
                         <el-form-item label="邀请方:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="电子邮箱" v-model="OpOfficialActivitiesDto.email">
-                            </el-input>
+                            <el-radio-group v-model="OpOfficialActivitiesDto.type">
+                                <el-radio :label=1>是</el-radio>
+                                <el-radio :label=0>否</el-radio>
+                            </el-radio-group>
                         </el-form-item>
                     </div>
                 </div>
@@ -71,78 +75,85 @@
 
                     <div style="width: 25%;">
                         <el-form-item label="公务方联系人职务:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="公务方联系人职务" v-model="OpOfficialActivitiesDto.email">
+                            <el-input clearable placeholder="公务方联系人职务" v-model="OpOfficialActivitiesDto.job">
                             </el-input>
                         </el-form-item>
                     </div>
                     <div style="width: 25%;">
                         <el-form-item label="公务方联系人:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="公务方联系人" v-model="OpOfficialActivitiesDto.email">
+                            <el-input clearable placeholder="公务方联系人" v-model="OpOfficialActivitiesDto.contact">
                             </el-input>
                         </el-form-item>
                     </div>
                     <div style="width: 25%;">
                         <el-form-item label="联系方式:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="联系方式" v-model="OpOfficialActivitiesDto.email">
+                            <el-input clearable placeholder="联系方式" v-model="OpOfficialActivitiesDto.tel">
                             </el-input>
                         </el-form-item>
                     </div>
+                    <el-form-item label="公务形式:" prop="email" label-width="160px">
+                        <el-select v-model="OpOfficialActivitiesDto.officialForm" clearable filterable placeholder="公务形式"
+                            style="width: 220px;">
+                            <el-option v-for="item in OfficialFormList" :key="item.id" :label="item.name" :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
                 </div>
                 <div style="display: flex;">
                     <div style="width: 25%;">
-                        <el-form-item label="公务形式:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="公务形式" v-model="OpOfficialActivitiesDto.email">
+                        <el-form-item label="着装要求:" prop="email" label-width="160px">
+                            <el-input clearable placeholder="着装要求" v-model="OpOfficialActivitiesDto.dresscode">
                             </el-input>
                         </el-form-item>
                     </div>
                     <div style="width: 25%;">
-                        <div style="width: 25%;">
-                            <el-form-item label="公务地址:" prop="email" label-width="160px">
-                                <el-input clearable placeholder="公务地址" v-model="OpOfficialActivitiesDto.email">
-                                </el-input>
-                            </el-form-item>
-                        </div>
-                        <el-form-item label="公务方背景:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="公务方背景" v-model="OpOfficialActivitiesDto.email">
-                            </el-input>
+                        <el-form-item label="需要翻译:" prop="email" label-width="160px">
+                            <el-radio-group v-model="OpOfficialActivitiesDto.isNeedTrans">
+                                <el-radio :label=1>是</el-radio>
+                                <el-radio :label=0>否</el-radio>
+                            </el-radio-group>
                         </el-form-item>
                     </div>
                     <div style="width: 25%;">
-                        <el-form-item label="参会人员:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="参会人员" v-model="OpOfficialActivitiesDto.email">
+                        <el-form-item label="翻译人员:" prop="email" label-width="160px">
+                            <el-input clearable placeholder="翻译人员" v-model="OpOfficialActivitiesDto.translators">
                             </el-input>
                         </el-form-item>
                     </div>
                     <div style="width: 25%;">
-                        <el-form-item label="着装要求:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="着装要求" v-model="OpOfficialActivitiesDto.email">
+                        <el-form-item label="翻译语种:" prop="email" label-width="160px">
+                            <el-input clearable placeholder="翻译语种" v-model="OpOfficialActivitiesDto.language">
                             </el-input>
                         </el-form-item>
                     </div>
+
                 </div>
                 <div style="display: flex;">
-                    <div style="width: 25%;">
-                        <el-form-item label="需要翻译:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="需要翻译" v-model="OpOfficialActivitiesDto.email">
-                            </el-input>
+                    <div style="width: 50%;">
+                        <el-form-item label="公务方背景:" prop="priceDescription" label-width="160px">
+                            <el-input type="textarea" :rows="3" placeholder="公务方背景"
+                                v-model="OpOfficialActivitiesDto.setting"></el-input>
                         </el-form-item>
                     </div>
-                    <div style="width: 25%;">
-                        <el-form-item label="翻译人员:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="翻译人员" v-model="OpOfficialActivitiesDto.email">
-                            </el-input>
+                    <div style="width: 50%;">
+                        <el-form-item label="公务地址:" prop="email" label-width="160px">
+                            <el-input type="textarea" :rows="3" placeholder="公务地址"
+                                v-model="OpOfficialActivitiesDto.address"></el-input>
                         </el-form-item>
                     </div>
-                    <div style="width: 25%;">
-                        <el-form-item label="翻译语种:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="翻译语种" v-model="OpOfficialActivitiesDto.email">
-                            </el-input>
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 50%;">
+                        <el-form-item label="暂定议程:" prop="email" label-width="160px">
+                            <el-input type="textarea" :rows="3" placeholder="暂定议程"
+                                v-model="OpOfficialActivitiesDto.trip"></el-input>
                         </el-form-item>
                     </div>
-                    <div style="width: 25%;">
-                        <el-form-item label="暂定议程:" prop="email" label-width="160px">
-                            <el-input clearable placeholder="暂定议程" v-model="OpOfficialActivitiesDto.email">
-                            </el-input>
+
+                    <div style="width: 50%;">
+                        <el-form-item label="参会人员:" prop="email" label-width="160px">
+                            <el-input type="textarea" :rows="3" placeholder="参会人员"
+                                v-model="OpOfficialActivitiesDto.attendees"></el-input>
                         </el-form-item>
                     </div>
                 </div>
@@ -155,7 +166,51 @@
                     </div>
                 </el-form-item>
             </el-form>
+            <div>
+                <div class="communal-title">
+                    <div>公务文件</div>
+                </div>
+            </div>
+            <hr style='background-color:#5555; height:1px; border:none;' />
+            <div style="display: flex;">
+                <div style="width: 33%;">
+                    公务方简介:
+                    <el-upload :file-list="uploadFiles1" ref="upload1" :on-success="upLoadSuccess1" :on-error="upLoadError1"
+                        :before-remove="beforeRemove1" :on-change="onChange1" :limit="1" :on-exceed="exceed1"
+                        :action="uploadURL" :headers="headers1" :auto-upload="false">
+                        <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
+                        <el-button style="margin-left: 10px;" size="small" type="success"
+                            @click="submitUpload1">上传</el-button>
+                    </el-upload>
+                </div>
+                <div style="width: 33%;">
+                    公务活动图片:
+                    <el-upload :file-list="uploadFiles2" ref="upload2" :on-success="upLoadSuccess2" :on-error="upLoadError2"
+                        :before-remove="beforeRemove2" :on-change="onChange2" :limit="1" :on-exceed="exceed2"
+                        :action="uploadURL" :headers="headers2" :auto-upload="false">
+                        <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
+
+                        <el-button style="margin-left: 10px;" size="small" type="success"
+                            @click="submitUpload2">上传</el-button>
+                    </el-upload>
+                </div>
+                <div style="width: 33%;display: flex;">
+                    <div style="width: 10%;">
+                        发票:
+                    </div>
+                    <div style="width: 90%;">
+                        <el-upload :file-list="uploadFiles3" ref="upload3" :on-success="upLoadSuccess3"
+                            :on-error="upLoadError3" :before-remove="beforeRemove3" :on-change="onChange3" :limit="1"
+                            :on-exceed="exceed3" :action="uploadURL" :headers="headers3" :auto-upload="false">
+                            <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
+                            <el-button style="margin-left: 10px;" size="small" type="success"
+                                @click="submitUpload3">上传</el-button>
+                        </el-upload>
+                    </div>
+
 
+                </div>
+            </div>
         </div>
     </div>
 </template>
@@ -171,6 +226,8 @@ export default {
             isShow: false,
             delegationInfo: {},
             delegationInfoList: [],//团组下拉框
+            OfficialFormList: [],//公务形式下拉框
+            deleFile: [],//文件数据
             headers: {
                 Authorization: JSON.parse(localStorage.getItem('userinif')).token,
                 TypeName: "A"
@@ -178,8 +235,8 @@ export default {
             OpOfficialActivitiesDto: {
                 status: 0,
                 id: 0,
-                diid: "",
-                type: "",
+                diId: "",
+                type: 0,
                 client: "",
                 date: "",
                 time: "",
@@ -187,11 +244,11 @@ export default {
                 contact: "",
                 job: "",
                 tel: "",
-                officialForm: 0,
+                officialForm: "",
                 setting: "",
                 dresscode: "",
                 attendees: "",
-                isNeedTrans: "",
+                isNeedTrans: 0,
                 translators: "",
                 language: "",
                 trip: "",
@@ -201,14 +258,35 @@ export default {
             OpOfficialActivitiesRules: {
 
             },
-
+            uploadURL: "http://localhost:5256/api/Resource/UploadOfficialActivities",
+            uploadFiles1: [],
+            uploadFiles2: [],
+            uploadFiles3: [],
+            headers1: {
+                Authorization: JSON.parse(localStorage.getItem('userinif')).token,
+                Type: "1",
+                DiId: 0,
+                CreateUserId: 0,
+            },
+            headers2: {
+                Authorization: JSON.parse(localStorage.getItem('userinif')).token,
+                Type: "2",
+                DiId: 0,
+                CreateUserId: 0,
+            },
+            headers3: {
+                Authorization: JSON.parse(localStorage.getItem('userinif')).token,
+                Type: "3",
+                DiId: 0,
+                CreateUserId: 0,
+            },
         }
     },
 
     methods: {
         //团组下拉框
         GetGroupAllList() {
-            var url = "/api/Groups/GetGroupAllList"
+            var url = "/api/Resource/GetGroupAllList"
             var that = this
             this.$axios({
                 method: 'post',
@@ -216,17 +294,34 @@ export default {
                 headers: {
                     Authorization: 'Bearer ' + this.token
                 },
+                data: {
+                    diid: that.diId
+                }
             }).then(function (res) {
                 if (res.data.code == 200) {
 
-                    that.delegationInfoList = res.data.data;
+                    that.deleFile = res.data.data.deleFile;
+                    that.delegationInfoList = res.data.data.delegation;
+                    that.OfficialFormList = res.data.data.setData;
+                    if (that.OfficialFormList.length != 0) {
+
+                        that.OpOfficialActivitiesDto.officialForm = that.OfficialFormList[0].id
+                    }
+                    for (let index = 0; index < that.delegationInfoList.length; index++) {
+                        if (that.delegationInfoList[index].id == parseInt(that.DiId)) {
+
+                            that.delegationInfo = that.delegationInfoList[index];
+                            break;
+                        }
+                    }
                 }
             }).catch(function (error) {
-                that.$message.error("网络错误,请稍后重试");
+                // that.$message.error("网络错误,请稍后重试");
             });
         },
 
         DiIdChang() {
+
             for (let index = 0; index < this.delegationInfoList.length; index++) {
                 if (this.delegationInfoList[index].id == parseInt(this.DiId)) {
                     this.delegationInfo = this.delegationInfoList[index];
@@ -248,8 +343,32 @@ export default {
                     DiId: that.DiId,
                 }
             }).then(function (res) {
+
                 if (res.data.code == 200) {
+                    var dataList = res.data.data
+                    that.OpOfficialActivitiesDto.id = dataList.id
+                    that.OpOfficialActivitiesDto.diId = dataList.diId
+                    that.OpOfficialActivitiesDto.type = dataList.type
+                    that.OpOfficialActivitiesDto.client = dataList.client
+                    that.OpOfficialActivitiesDto.date = dataList.date
+                    that.OpOfficialActivitiesDto.time = dataList.time
+                    that.OpOfficialActivitiesDto.address = dataList.address
+                    that.OpOfficialActivitiesDto.contact = dataList.contact
+                    that.OpOfficialActivitiesDto.job = dataList.job
+                    that.OpOfficialActivitiesDto.tel = dataList.tel
+                    that.OpOfficialActivitiesDto.officialForm = dataList.officialForm
+                    that.OpOfficialActivitiesDto.setting = dataList.setting
+                    that.OpOfficialActivitiesDto.dresscode = dataList.dresscode
+                    that.OpOfficialActivitiesDto.attendees = dataList.attendees
+                    that.OpOfficialActivitiesDto.isNeedTrans = dataList.isNeedTrans
+                    that.OpOfficialActivitiesDto.translators = dataList.translators
+                    that.OpOfficialActivitiesDto.language = dataList.language
+                    that.OpOfficialActivitiesDto.trip = dataList.trip
+                    that.OpOfficialActivitiesDto.createUserId = dataList.createUserId
+                    that.OpOfficialActivitiesDto.remark = dataList.remark
 
+                    var DeleFileList = res.data.data.deleFile;
+                    console.log(DeleFileList)
                 }
 
             })
@@ -259,16 +378,135 @@ export default {
                 this.$message.error("请选择团组名称");
                 return;
             }
-        }
+            const that = this;
+            that.OpOfficialActivitiesDto.createUserId = that.userId
+            that.OpOfficialActivitiesDto.diId = that.DiId
+            that.$refs.OpOfficialActivitiesDto.validate((valid) => {
+                if (valid) {
+                    var url = "/api/Resource/OpOfficialActivities"
+                    that.$axios({
+                        method: 'post',
+                        url: url,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: that.OpOfficialActivitiesDto
+                    }).then(function (res) {
+
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message: res.data.msg,
+                                type: 'success'
+                            });
+                            that.loading = true;
+                        } else {
+                            that.$message.error(res.data.msg);
+                        }
+                    })
+                } else {
+                    this.$message.error('请完善信息在保存!');
+                    return false;
+                }
+            })
+        },
+        //上传1
+        //上传到服务器
+        submitUpload1() {
+            this.$refs.upload1.submit();
+        },
+        // 文件超出限制
+        exceed1(files, fileList) {
+            this.$message.warning(
+                `当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
+                } 个文件,请取消要替换的文件`
+            );
+        },
+        //文件上传成功时的钩子
+        upLoadSuccess1(response, file, fileList) {
+            console.log(response)
+        },
+        //文件上传失败时的钩子
+        upLoadError1(response, file, fileList) {
+            console.log("项目添加失败");
+        },
+        beforeRemove1(file, fileList) {
+
+        },
+        onChange1(file, fileList) {
+
+        },
+
+        //上传2
+        //上传到服务器
+        submitUpload2() {
+            this.$refs.upload2.submit();
+        },
+        // 文件超出限制
+        exceed2(files, fileList) {
+            this.$message.warning(
+                `当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
+                } 个文件,请取消要替换的文件`
+            );
+        },
+        //文件上传成功时的钩子
+        upLoadSuccess2(response, file, fileList) {
+
+        },
+        //文件上传失败时的钩子
+        upLoadError2(response, file, fileList) {
+            console.log("项目添加失败");
+        },
+        beforeRemove2(file, fileList) {
+
+        },
+        onChange2(file, fileList) {
+
+        },
+        //上传3
+        //上传到服务器
+        submitUpload3() {
+            this.$refs.upload3.submit();
+        },
+        // 文件超出限制
+        exceed3(files, fileList) {
+            this.$message.warning(
+                `当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
+                } 个文件,请取消要替换的文件`
+            );
+        },
+        //文件上传成功时的钩子
+        upLoadSuccess3(response, file, fileList) {
+
+        },
+        //文件上传失败时的钩子
+        upLoadError3(response, file, fileList) {
+            console.log("项目添加失败");
+        },
+        beforeRemove3(file, fileList) {
+
+        },
+        onChange3(file, fileList) {
+
+        },
     },
 
     mounted() {
 
         this.token = JSON.parse(localStorage.getItem('userinif')).token;
         this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
-        this.GetGroupAllList();
         this.id = this.$route.query.id
         this.DiId = parseInt(this.$route.query.DiId)
+        this.headers1.DiId = this.DiId
+        this.headers1.CreateUserId = this.userId
+
+        this.headers2.DiId = this.DiId
+        this.headers2.CreateUserId = this.userId
+
+        this.headers3.DiId = this.DiId
+        this.headers3.CreateUserId = this.userId
+
+        this.GetGroupAllList();
+
         if (this.DiId == null && this.DiId == undefined && this.DiId == 0) {
             this.DiId = '';
         }