xuqiang 4 سال پیش
والد
کامیت
7534a69ec3

+ 386 - 0
src/main/vue/src/components/OrganizationLog.vue

@@ -0,0 +1,386 @@
+<template>
+    <el-dialog
+        v-loading="saving"
+        @close="closeDialog"
+        title="承办单位编辑"
+        center
+        :visible.sync="dialogVisible"
+        width="800px"
+    >
+        <div class="edit-view">
+            <el-form
+                :model="formData"
+                :rules="rules"
+                ref="form"
+                label-width="108px"
+                label-position="right"
+                size="small"
+                style="max-width: 660px;"
+                inline
+            >
+                <!-- <el-form-item prop="businessLicense" label="营业执照">
+                <single-upload v-model="formData.businessLicense"></single-upload>
+            </el-form-item>
+            <el-form-item prop="name" label="承办单位名称">
+                <el-input v-model="formData.name" placeholder="请输入机构名称"></el-input>
+            </el-form-item>
+            <el-form-item prop="uscc" label="统一社会信用代码">
+                <el-input v-model="formData.uscc" placeholder="请输入统一社会信用代码"></el-input>
+            </el-form-item>
+            <el-form-item prop="district" label="地址">
+                <el-select v-model="formData.district" style="width:100%">
+                    <el-option
+                        v-for="(item, index) in districtOptions"
+                        :key="index"
+                        :value="item.value"
+                        :label="item.label"
+                    ></el-option>
+                </el-select>
+                <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 3, maxRows: 4 }"
+                    style="margin-top: 14px"
+                    placeholder="请输入详细地址"
+                    v-model="formData.address"
+                ></el-input>
+            </el-form-item>
+            <el-form-item prop="owner" label="负责人">
+                <el-input v-model="formData.owner" placeholder="请输入负责人"></el-input>
+            </el-form-item>
+            <el-form-item prop="privacyPolicy" label="法人姓名">
+                <el-input v-model="formData.privacyPolicy" placeholder="请输入法人姓名"></el-input>
+            </el-form-item>
+            <el-form-item prop="idNo" label="证件号码">
+                <el-input v-model="formData.idNo" placeholder="请输入证件号码"></el-input>
+            </el-form-item>
+            <el-form-item>
+                <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>
+                <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除 </el-button>
+                <el-button @click="$router.go(-1)">取消</el-button>
+            </el-form-item> -->
+                <div class="info-content">
+                    <el-form-item label="承办单位名称" prop="name">
+                        <el-input v-model="formData.name" placeholder="请输入承办单位名称" readonly></el-input>
+                    </el-form-item>
+                    <el-form-item label="负责人" prop="owner">
+                        <el-input v-model="formData.owner" placeholder="请输入负责人" readonly></el-input>
+                    </el-form-item>
+                    <el-form-item label="负责人邮箱" prop="ownerEmail">
+                        <el-input v-model="formData.ownerEmail" placeholder="请输入负责人邮箱" readonly></el-input>
+                    </el-form-item>
+                    <el-form-item label="负责人电话" prop="ownerPhone">
+                        <el-input v-model="formData.ownerPhone" placeholder="请输入负责人电话" readonly></el-input>
+                    </el-form-item>
+                    <el-form-item label="法人姓名" prop="privacyPolicy">
+                        <el-input v-model="formData.privacyPolicy" placeholder="请输入法人姓名" readonly></el-input>
+                    </el-form-item>
+                    <el-form-item label="证件号码" prop="idNo">
+                        <el-input v-model="formData.idNo" placeholder="请输入证件号码" readonly></el-input>
+                    </el-form-item>
+                    <el-collapse-transition>
+                        <div v-if="showMore">
+                            <el-form-item label="信用代码" prop="uscc">
+                                <el-input
+                                    v-model="formData.uscc"
+                                    placeholder="请输入统一社会信用代码"
+                                    readonly
+                                    style="width: 180px"
+                                ></el-input>
+                            </el-form-item>
+                            <el-form-item label="地址" prop="district" class="address">
+                                <el-select v-model="formData.district" style="width:100%">
+                                    <el-option
+                                        v-for="(item, index) in districtOptions"
+                                        :key="index"
+                                        :value="item.value"
+                                        :label="item.label"
+                                        disabled
+                                    ></el-option>
+                                </el-select>
+                            </el-form-item>
+
+                            <el-form-item label=" " prop="address" class="address">
+                                <el-input
+                                    type="textarea"
+                                    :autosize="{ minRows: 3, maxRows: 4 }"
+                                    placeholder="请输入详细地址"
+                                    v-model="formData.address"
+                                    readonly
+                                ></el-input>
+                            </el-form-item>
+                            <el-form-item label="所属考级机构" prop="gradingOrganizationId">
+                                <el-select
+                                    v-model="formData.gradingOrganizationId"
+                                    placeholder="所属考级机构"
+                                    multiple
+                                    style="width:490px"
+                                    disabled
+                                >
+                                    <el-option
+                                        v-for="(item, index) in examination"
+                                        :key="index"
+                                        :value="item.value"
+                                        :label="item.label"
+                                    ></el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="经营范围" prop="businessScope" class="address">
+                                <el-input
+                                    type="textarea"
+                                    :autosize="{ minRows: 5, maxRows: 7 }"
+                                    placeholder="请输入经营范围"
+                                    v-model="formData.businessScope"
+                                    style="width:100%"
+                                    readonly
+                                ></el-input>
+                            </el-form-item>
+                            <el-form-item label="营业执照" prop="businessLicense" class="address">
+                                <single-upload v-model="formData.businessLicense"></single-upload>
+                            </el-form-item>
+                        </div>
+                    </el-collapse-transition>
+                    <div style="width:100%;textAlign:center">
+                        <el-button
+                            class="more"
+                            round
+                            type="primary"
+                            :plain="!showMore"
+                            :icon="showMore ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
+                            @click="showMore = !showMore"
+                        ></el-button>
+                    </div>
+                </div>
+                <!-- <el-form-item class="fixed-btn"> -->
+                <!-- <el-button @click="readonly = false" :loading="saving" type="success">编辑</el-button> -->
+                <!-- <div style="margin: 10px"> -->
+                <!-- <el-button @click="onSave" :loading="saving" type="primary">保存</el-button> -->
+
+                <!-- </div> -->
+                <!-- </el-form-item> -->
+            </el-form>
+            <!-- <div class="btn"> -->
+            <el-button @click="onDelete" type="danger" size="mini">删除</el-button>
+            <el-button @click="dialogVisible = false">返回</el-button>
+            <!-- </div> -->
+        </div>
+    </el-dialog>
+</template>
+<script>
+import { mapState } from 'vuex';
+export default {
+    name: 'OrganizationEdit',
+    props: ['dialogVisible'],
+    created() {},
+    data() {
+        return {
+            saving: false,
+            showMore: false,
+            formData: {
+                businessLicense: '',
+                name: '',
+                uscc: '',
+                address: '',
+                owner: '',
+                privacyPolicy: '',
+                IDNo: ''
+            },
+            rules: {},
+            districtOptions: [],
+            examination: []
+        };
+    },
+    computed: {
+        ...mapState(['organization'])
+    },
+    methods: {
+        dataApi(id) {
+            if (id) {
+                this.$http
+                    .get('organization/get/' + id)
+                    .then(res => {
+                        this.formData = res;
+                    })
+                    .catch(e => {
+                        console.log(e);
+                        this.$message.error(e.error);
+                    });
+            }
+            if (this.organization != null) {
+                this.formData = this.organization;
+            }
+            this.$http
+                // .get('/district/NJ', { size: 1000, query: { del: false } })
+                .post('/setting/byFlag', { flag: 2 })
+                .then(res => {
+                    if (res.length > 0) {
+                        res.forEach(item => {
+                            this.districtOptions.push({
+                                label: item.name,
+                                value: item.name
+                            });
+                        });
+                    }
+                })
+                .catch(e => {
+                    console.log(e);
+                    this.$message.error(e.error);
+                });
+            this.$http
+                .post('/gradingOrganization/all', { size: 1000 }, { body: 'json' })
+                .then(res => {
+                    if (res.content.length > 0) {
+                        res.content.forEach(item => {
+                            this.examination.push({
+                                label: item.name,
+                                value: item.id
+                            });
+                        });
+                    }
+                })
+                .catch(e => {
+                    console.log(e);
+                    this.$message.error(e.error);
+                });
+        },
+        closeDialog() {
+            this.$emit('close');
+        },
+        onSave() {
+            this.$refs.form.validate(valid => {
+                if (valid) {
+                    this.submit();
+                } else {
+                    return false;
+                }
+            });
+        },
+        submit() {
+            let data = { ...this.formData };
+            this.saving = true;
+            this.$http
+                .post('/organization/save', data, { body: 'json' })
+                .then(res => {
+                    this.saving = false;
+                    this.$message.success('成功');
+                    // this.$router.go(-1);
+                })
+                .catch(e => {
+                    console.log(e);
+                    this.saving = false;
+                    this.$message.error(e.error);
+                });
+        },
+        onNew() {
+            this.$refs.form.validate(valid => {
+                if (valid) {
+                    let data = { ...this.formData };
+
+                    this.saving = true;
+                    this.$http
+                        .post('/organization/save', data, { body: 'json' })
+                        .then(res => {
+                            this.saving = false;
+                            this.$message.success('成功');
+                            this.$emit('next');
+                            console.log(res.id);
+                            this.$router.replace({
+                                name: 'RateEdit',
+                                query: {
+                                    organId: res.id
+                                }
+                            });
+                        })
+                        .catch(e => {
+                            console.log(e);
+                            this.saving = false;
+                            this.$message.error(e.error);
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        onDelete() {
+            this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' })
+                .then(() => {
+                    return this.$http.post(`/organization/del/${this.formData.id}`);
+                })
+                .then(() => {
+                    this.$message.success('删除成功');
+                    this.$router.go(-1);
+                })
+                .catch(e => {
+                    if (e !== 'cancel') {
+                        console.log(e);
+                        this.$message.error((e || {}).error || '删除失败');
+                    }
+                });
+        }
+    }
+};
+</script>
+<style lang="less" scoped>
+/deep/ .el-dialog__body {
+    padding: 0;
+}
+.btn {
+    position: fixed;
+    bottom: 0;
+    width: 100%;
+    background: #ffffff;
+    height: 50px;
+    line-height: 50px;
+    z-index: 999;
+    margin-left: -20px;
+    padding-left: 20px;
+}
+.info-content {
+    // background: #f5f7fa;
+    // padding: 39px 25px 25px;
+    margin: 5px auto;
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: space-between;
+
+    .info-item {
+        width: 50%;
+        display: flex;
+        align-items: center;
+        margin-bottom: 10px;
+
+        &.address {
+            width: 100%;
+            align-items: flex-start;
+            .val {
+                width: 485px;
+            }
+        }
+
+        .name {
+            font-size: 13px;
+            font-family: PingFangSC-Regular, PingFang SC;
+            font-weight: 400;
+            color: #565b66;
+            line-height: 22px;
+            min-width: 75px;
+            margin-right: 10px;
+            text-align: right;
+        }
+
+        .val {
+            width: 190px;
+        }
+    }
+}
+
+/deep/ .address {
+    display: flex;
+    width: 100%;
+    .el-form-item__content {
+        flex-grow: 1;
+    }
+}
+/deep/ .el-input.is-disabled .el-input__inner {
+    background-color: #ffffff;
+}
+</style>

+ 108 - 92
src/main/vue/src/components/ProgrammeLog.vue

@@ -172,95 +172,111 @@
                             </el-form-item>
                         </el-card>
                     </el-timeline-item>
+                    <el-collapse-transition>
+                        <div v-show="showMore">
+                            <el-timeline-item placement="top" size="normal" timestamp="单位信息">
+                                <el-card shadow="hover" :body-style="{ padding: '20px' }">
+                                    <el-form-item prop="gradingOrganizationId" label="考级机构">
+                                        <el-select
+                                            v-model="formData.gradingOrganizationId"
+                                            clearable
+                                            filterable
+                                            placeholder="请选择"
+                                            class="width"
+                                            disabled
+                                        >
+                                            <el-option
+                                                v-for="item in gradingOrganizationIdOptions"
+                                                :key="item.value"
+                                                :label="item.label"
+                                                :value="item.value"
+                                            >
+                                            </el-option>
+                                        </el-select>
+                                    </el-form-item>
+                                    <el-form-item prop="organizationId" label="承办单位">
+                                        <el-select
+                                            v-model="formData.organizationId"
+                                            clearable
+                                            filterable
+                                            placeholder="请选择"
+                                            class="width"
+                                            disabled
+                                        >
+                                            <el-option
+                                                v-for="item in organizationIdOptions"
+                                                :key="item.value"
+                                                :label="item.label"
+                                                :value="item.value"
+                                            >
+                                            </el-option>
+                                        </el-select>
+                                    </el-form-item>
+                                    <el-form-item prop="examPoint" label="考级点">
+                                        <el-input v-model="formData.examPoint" class="width" readonly></el-input>
+                                    </el-form-item>
+                                    <el-form-item prop="contact" label="联系人">
+                                        <el-input v-model="formData.contact" class="width" readonly></el-input>
+                                    </el-form-item>
+                                    <el-form-item prop="phone" label="联系电话">
+                                        <el-input v-model="formData.phone" class="width" readonly></el-input>
+                                    </el-form-item>
+                                </el-card>
+                            </el-timeline-item>
 
-                    <el-timeline-item placement="top" size="normal" timestamp="单位信息">
-                        <el-card shadow="hover" :body-style="{ padding: '20px' }">
-                            <el-form-item prop="gradingOrganizationId" label="考级机构">
-                                <el-select
-                                    v-model="formData.gradingOrganizationId"
-                                    clearable
-                                    filterable
-                                    placeholder="请选择"
-                                    class="width"
-                                    disabled
-                                >
-                                    <el-option
-                                        v-for="item in gradingOrganizationIdOptions"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value"
+                            <el-timeline-item placement="top" size="normal" timestamp="参演人员">
+                                <el-card shadow="hover" :body-style="{ padding: '20px' }">
+                                    <el-table
+                                        :data="participants"
+                                        ref="table"
+                                        header-row-class-name="table-header-row"
+                                        header-cell-class-name="table-header-cell"
+                                        row-class-name="table-row"
+                                        cell-class-name="table-cell"
                                     >
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item prop="organizationId" label="承办单位">
-                                <el-select
-                                    v-model="formData.organizationId"
-                                    clearable
-                                    filterable
-                                    placeholder="请选择"
-                                    class="width"
-                                    disabled
-                                >
-                                    <el-option
-                                        v-for="item in organizationIdOptions"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value"
-                                    >
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item prop="examPoint" label="考级点">
-                                <el-input v-model="formData.examPoint" class="width" readonly></el-input>
-                            </el-form-item>
-                            <el-form-item prop="contact" label="联系人">
-                                <el-input v-model="formData.contact" class="width" readonly></el-input>
-                            </el-form-item>
-                            <el-form-item prop="phone" label="联系电话">
-                                <el-input v-model="formData.phone" class="width" readonly></el-input>
-                            </el-form-item>
-                        </el-card>
-                    </el-timeline-item>
-
-                    <el-timeline-item placement="top" size="normal" timestamp="参演人员">
-                        <el-card shadow="hover" :body-style="{ padding: '20px' }">
-                            <el-table
-                                :data="participants"
-                                ref="table"
-                                header-row-class-name="table-header-row"
-                                header-cell-class-name="table-header-cell"
-                                row-class-name="table-row"
-                                cell-class-name="table-cell"
-                            >
-                                <el-table-column prop="img" label="证件照">
-                                    <template slot-scope="{ row }">
-                                        <el-image
-                                            style="width: 30px; height: 30px;"
-                                            :src="row.img"
-                                            fit="cover"
-                                            :preview-src-list="[row.img]"
-                                        ></el-image>
-                                    </template>
-                                </el-table-column>
-                                <el-table-column prop="name" label="姓名" min-width="80"> </el-table-column>
-                                <el-table-column prop="birthday" label="出生年月" min-width="100"> </el-table-column>
-                                <el-table-column prop="sex" label="性别" min-width="70"> </el-table-column>
-                                <el-table-column prop="phone" label="联系方式" min-width="100"> </el-table-column>
-                                <el-table-column prop="certificate" label="考级证书">
-                                    <template slot-scope="{ row }">
-                                        <el-image
-                                            style="width: 30px; height: 30px;"
-                                            :src="row.certificate"
-                                            fit="cover"
-                                            :preview-src-list="[row.certificate]"
-                                        ></el-image>
-                                    </template>
-                                </el-table-column>
-                                <el-table-column prop="idNo" label="身份证号" min-width="100"> </el-table-column>
-                            </el-table>
-                        </el-card>
-                    </el-timeline-item>
+                                        <el-table-column prop="img" label="证件照">
+                                            <template slot-scope="{ row }">
+                                                <el-image
+                                                    style="width: 30px; height: 30px;"
+                                                    :src="row.img"
+                                                    fit="cover"
+                                                    :preview-src-list="[row.img]"
+                                                ></el-image>
+                                            </template>
+                                        </el-table-column>
+                                        <el-table-column prop="name" label="姓名" min-width="80"> </el-table-column>
+                                        <el-table-column prop="birthday" label="出生年月" min-width="100">
+                                        </el-table-column>
+                                        <el-table-column prop="sex" label="性别" min-width="70"> </el-table-column>
+                                        <el-table-column prop="phone" label="联系方式" min-width="100">
+                                        </el-table-column>
+                                        <el-table-column prop="certificate" label="考级证书">
+                                            <template slot-scope="{ row }">
+                                                <el-image
+                                                    style="width: 30px; height: 30px;"
+                                                    :src="row.certificate"
+                                                    fit="cover"
+                                                    :preview-src-list="[row.certificate]"
+                                                ></el-image>
+                                            </template>
+                                        </el-table-column>
+                                        <el-table-column prop="idNo" label="身份证号" min-width="100">
+                                        </el-table-column>
+                                    </el-table>
+                                </el-card>
+                            </el-timeline-item>
+                        </div>
+                    </el-collapse-transition>
+                    <div style="width:100%;textAlign:center">
+                        <el-button
+                            class="more"
+                            round
+                            type="primary"
+                            :plain="!showMore"
+                            :icon="showMore ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
+                            @click="showMore = !showMore"
+                        ></el-button>
+                    </div>
                 </el-timeline>
                 <!-- <el-form-item> </el-form-item> -->
             </el-form>
@@ -283,6 +299,7 @@ export default {
             saving: false,
             formData: {},
             show: false,
+            showMore: false,
             level: '',
             rules: {
                 phone: [
@@ -333,7 +350,7 @@ export default {
         }
     },
     methods: {
-        init(id) {
+        dataApi(id) {
             if (id) {
                 this.$http
                     .get('programme/get/' + id)
@@ -482,7 +499,6 @@ export default {
         },
         closeDialog() {
             this.$emit('close');
-            this.$parent.hh();
         },
         onAddOtherForm() {
             console.log(this.participants.length);
@@ -532,9 +548,9 @@ export default {
 .width {
     width: 260px;
 }
-/deep/ .el-timeline-item {
-    padding-bottom: 35px;
-}
+// /deep/ .el-timeline-item {
+//     padding-bottom: 35px;
+// }
 .imgBox {
     width: 178px;
     height: 178px;

+ 2 - 2
src/main/vue/src/plugins/http.js

@@ -6,8 +6,8 @@ let baseUrl = 'http://localhost:8080';
 switch (process.env.NODE_ENV) {
     case 'development':
         // baseUrl = 'http://localhost:8080';
-        // baseUrl = 'http://wljtest.izouma.com';
-        baseUrl = 'http://192.168.50.190:8080';
+        baseUrl = 'http://wljtest.izouma.com';
+        // baseUrl = 'http://192.168.50.190:8080';
         break;
     case 'test':
         baseUrl = 'http://localhost:8080';

+ 8 - 7
src/main/vue/src/views/organization/OrganizationList.vue

@@ -126,22 +126,27 @@
             >
             </el-pagination>
         </div>
+        <organization-log :dialogVisible="isShow" @close="isShow = false" ref="public"></organization-log>
     </div>
 </template>
 <script>
 import { mapState } from 'vuex';
 import pageableTable from '@/mixins/pageableTable';
 import formatters from '@/mixins/formatters';
-
+import OrganizationLog from '../../components/OrganizationLog.vue';
 export default {
     name: 'OrganizationList',
     mixins: [pageableTable, formatters],
+    components: {
+        OrganizationLog
+    },
     data() {
         return {
             multipleMode: false,
             search: '',
             url: '/organization/all',
             downloading: false,
+            isShow: false,
             dateRange: '',
             district: '',
             districts: []
@@ -200,12 +205,8 @@ export default {
             });
         },
         editRow(row) {
-            this.$router.push({
-                path: '/organizationEdit',
-                query: {
-                    id: row.id
-                }
-            });
+            this.isShow = true;
+            this.$refs.public.dataApi(row.id);
         },
         download() {
             this.downloading = true;

+ 2 - 6
src/main/vue/src/views/performance/ProgrammeList.vue

@@ -267,7 +267,7 @@
                 您的浏览器不支持 video 标签。
             </video>
         </el-dialog>
-        <programme-log :dialogVisible="isShow" @close="closeDialog" ref="public"></programme-log>
+        <programme-log :dialogVisible="isShow" @close="isShow = false" ref="public"></programme-log>
         <el-dialog class="videoDialog" destroy-on-close center append-to-body :visible.sync="showImg" width="35%">
             <img style="height: 100%; max-width: 100%" :src="annex" alt="" />
         </el-dialog>
@@ -298,7 +298,6 @@ export default {
             dialogUrl: '',
             dialogCode: false,
             isShow: false,
-            IDs: 0,
             gradingOrganizationIdOptions: [],
             organizationIdOptions: [],
             performanceId: '',
@@ -484,12 +483,9 @@ export default {
                 }
             });
         },
-        closeDialog() {
-            this.isShow = false;
-        },
         showRow(row) {
             this.isShow = true;
-            this.$refs.public.init(row.id);
+            this.$refs.public.dataApi(row.id);
         },
         download() {
             this.downloading = true;