xuqiang 4 лет назад
Родитель
Сommit
1beefaa377

+ 89 - 48
src/main/vue/package-lock.json

@@ -2004,16 +2004,6 @@
           "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
           "dev": true
         },
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
         "cacache": {
           "version": "13.0.1",
           "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz",
@@ -2040,10 +2030,11 @@
             "unique-filename": "^1.1.1"
           }
         },
+<<<<<<< HEAD
         "chalk": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
-          "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+          "version": "4.1.2",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
           "dev": true,
           "optional": true,
           "requires": {
@@ -2061,6 +2052,8 @@
             "color-name": "~1.1.4"
           }
         },
+=======
+>>>>>>> 6f464b2555e142a0df97473c6cdddc73dc7a77a0
         "debug": {
           "version": "4.3.1",
           "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
@@ -2070,25 +2063,6 @@
             "ms": "2.1.2"
           }
         },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "optional": true
-        },
-        "loader-utils": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
-          "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^2.1.2"
-          }
-        },
         "ms": {
           "version": "2.1.2",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -2111,16 +2085,6 @@
             "minipass": "^3.1.1"
           }
         },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        },
         "terser-webpack-plugin": {
           "version": "2.3.8",
           "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz",
@@ -2137,11 +2101,12 @@
             "terser": "^4.6.12",
             "webpack-sources": "^1.4.3"
           }
+<<<<<<< HEAD
         },
         "vue-loader-v16": {
-          "version": "npm:vue-loader@16.3.3",
-          "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.3.3.tgz",
-          "integrity": "sha512-/1GzCuQ6MRORbC+leKTKoTGtpQt60bYe0gDGEextSteA2OM+v201FPha5jzmjQzVhRcwieZeUvezAtG5a/e5cw==",
+          "version": "npm:vue-loader@16.8.1",
+          "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.1.tgz",
+          "integrity": "sha512-V53TJbHmzjBhCG5OYI2JWy/aYDspz4oVHKxS43Iy212GjGIG1T3EsB3+GWXFm/1z5VwjdjLmdZUFYM70y77vtQ==",
           "dev": true,
           "optional": true,
           "requires": {
@@ -2149,6 +2114,8 @@
             "hash-sum": "^2.0.0",
             "loader-utils": "^2.0.0"
           }
+=======
+>>>>>>> 6f464b2555e142a0df97473c6cdddc73dc7a77a0
         }
       }
     },
@@ -5940,9 +5907,9 @@
       "dev": true
     },
     "ezuikit-js": {
-      "version": "0.2.4",
-      "resolved": "https://registry.npmjs.org/ezuikit-js/-/ezuikit-js-0.2.4.tgz",
-      "integrity": "sha512-ro/vEgUvIc+7qrGloxsdxLdgD7V9hCVAgxddy9pZzMxJKm+Gy6qNjwGVLt0TmZ8HhcVvVMZpRoxWE2538tinYA=="
+      "version": "0.2.8",
+      "resolved": "https://registry.npmjs.org/ezuikit-js/-/ezuikit-js-0.2.8.tgz",
+      "integrity": "sha512-mWMUgvCHRaX+xZnUru89aM5LJK96+dynyt659sNTGNovb8R0vLEFch+5tc5LB5bZ8Q6370EobmBUpJ/bf5PcHA=="
     },
     "fast-deep-equal": {
       "version": "3.1.3",
@@ -12114,6 +12081,80 @@
         }
       }
     },
+    "vue-loader-v16": {
+      "version": "npm:vue-loader@16.8.1",
+      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.1.tgz",
+      "integrity": "sha512-V53TJbHmzjBhCG5OYI2JWy/aYDspz4oVHKxS43Iy212GjGIG1T3EsB3+GWXFm/1z5VwjdjLmdZUFYM70y77vtQ==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "chalk": "^4.1.0",
+        "hash-sum": "^2.0.0",
+        "loader-utils": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true,
+          "optional": true
+        },
+        "loader-utils": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
+          "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
+      }
+    },
     "vue-router": {
       "version": "3.5.1",
       "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.1.tgz",

+ 1 - 1
src/main/vue/package.json

@@ -21,7 +21,7 @@
     "echarts": "^5.1.1",
     "echarts-gl": "^2.0.4",
     "element-ui": "^2.15.2",
-    "ezuikit-js": "^0.2.4",
+    "ezuikit-js": "^0.2.8",
     "normalize.css": "^8.0.1",
     "qrcode.vue": "^1.7.0",
     "qs": "^6.10.1",

+ 4 - 4
src/main/vue/src/components/SingleUpload.vue

@@ -85,9 +85,9 @@ export default {
 .single-uploader-icon {
     font-size: 28px;
     color: #8c939d;
-    width: 178px;
-    height: 178px;
-    line-height: 178px;
+    width: 50px;
+    height: 50px;
+    line-height: 50px;
     text-align: center;
     border: 1px dashed #d9d9d9;
     border-radius: 6px;
@@ -102,7 +102,7 @@ export default {
 }
 
 .upload-image {
-    height: 178px;
+    height: 50px;
     display: block;
     border: 1px dashed #d9d9d9;
     border-radius: 6px;

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

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

+ 1 - 1
src/main/vue/src/views/performance/PerformanceEdit.vue

@@ -112,7 +112,7 @@
                 <el-input v-model="formData.email" style="width: 300px"></el-input>
             </el-form-item>
             <el-form-item prop="annex" label="活动方案">
-                <file-upload v-model="formData.annex"></file-upload>
+                <file-upload v-model="formData.annex" :limit="1"></file-upload>
             </el-form-item>
             <el-form-item prop="codeImg" label="活动工作群">
                 <single-upload v-model="formData.codeImg"></single-upload>

+ 2 - 2
src/main/vue/src/views/performance/PerformanceList.vue

@@ -25,8 +25,8 @@
         >
             <el-table-column v-if="multipleMode" align="center" type="selection" width="50"> </el-table-column>
             <!-- <el-table-column prop="id" label="ID" width="100"> </el-table-column> -->
-            <el-table-column prop="name" label="活动名称" min-width="190"> </el-table-column>
-            <el-table-column prop="year" label="年度"> </el-table-column>
+            <el-table-column prop="name" label="活动名称" min-width="230"> </el-table-column>
+            <el-table-column prop="year" label="年度" min-width="50"> </el-table-column>
             <el-table-column prop="status" label="活动状态" width="80">
                 <template slot-scope="{ row }">
                     <el-link style="font-size: 13px" :underline="false" type="info" v-if="currentTime < row.startDate"

+ 3 - 0
src/main/vue/src/views/performance/PerformanceListShow.vue

@@ -65,6 +65,9 @@
                     >
                         报名
                     </el-button>
+                    <el-button @click="programmeRow(row)" type="primary" size="mini" plain v-else>
+                        节目列表
+                    </el-button>
                 </template>
             </el-table-column>
         </el-table>

+ 12 - 1
src/main/vue/src/views/performance/PerformanceShow.vue

@@ -112,7 +112,7 @@
                                 <el-input v-model="formData.email" style="width: 300px" readonly></el-input>
                             </el-form-item>
                             <el-form-item prop="annex" label="活动方案">
-                                <file-upload v-model="formData.annex" :readonly="true"></file-upload>
+                                <file-upload v-model="formData.annex" :readonly="true" :limit="1"></file-upload>
                             </el-form-item>
                             <el-form-item prop="codeImg" label="活动工作群">
                                 <el-image
@@ -205,4 +205,15 @@ export default {
 /deep/.el-radio__input.is-disabled + span.el-radio__label {
     color: #606266; // #409EFF;
 }
+/deep/.el-timeline-item__timestamp {
+    color: #0561d9;
+    line-height: 1;
+    font-size: 14px;
+}
+/deep/.el-timeline-item__node {
+    background-color: #5b9bed;
+}
+/deep/.el-timeline-item__tail {
+    border-left: 2px solid #7cace9;
+}
 </style>

+ 106 - 60
src/main/vue/src/views/performance/ProgrammeEdit.vue

@@ -7,7 +7,7 @@
             label-width="80px"
             label-position="right"
             size="small"
-            style="max-width: 700px;"
+            style="max-width: 820px;"
         >
             <el-timeline>
                 <el-timeline-item placement="top" size="normal" timestamp="基本信息">
@@ -159,63 +159,58 @@
 
                 <el-timeline-item placement="top" size="normal" timestamp="参演人员">
                     <el-card shadow="hover" :body-style="{ padding: '20px' }">
+                        <div class="add-bottom">
+                            <div class="name">
+                                <div class="label">姓名</div>
+                            </div>
+                            <div class="name">
+                                <div class="label">出生年月</div>
+                            </div>
+                            <div class="name">
+                                <div class="label label1">性别</div>
+                            </div>
+                            <div class="name">
+                                <div class="label label1">联系方式</div>
+                            </div>
+                            <div class="name">
+                                <div class="label label2">身份证</div>
+                            </div>
+                            <div class="name imgBox">
+                                <div class="label label1">照片</div>
+                            </div>
+                            <div class="name imgBox">
+                                <div class="label label3">证书</div>
+                            </div>
+                        </div>
                         <div v-for="(item, index) in participants" :key="index">
                             <div class="add-con" v-if="!item.del">
-                                <el-row>
-                                    <el-col :span="11">
-                                        <el-form-item prop="name" label="姓名">
-                                            <el-input v-model="item.name"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-                                    <el-col :span="11">
-                                        <el-form-item prop="birthday" label="出生年月">
-                                            <el-date-picker
-                                                v-model="item.birthday"
-                                                type="date"
-                                                value-format="yyyy-MM-dd"
-                                                placeholder="选择日期"
-                                            >
-                                            </el-date-picker>
-                                        </el-form-item>
-                                    </el-col>
-                                </el-row>
-                                <el-row>
-                                    <el-col :span="11">
-                                        <el-form-item prop="sex" label="性别">
-                                            <el-select v-model="item.sex">
-                                                <el-option label="男" value="男"></el-option>
-                                                <el-option label="女" value="女"></el-option>
-                                            </el-select>
-                                        </el-form-item>
-                                    </el-col>
-                                    <el-col :span="11">
-                                        <el-form-item prop="phone" label="联系方式">
-                                            <el-input v-model="item.phone"></el-input>
-                                        </el-form-item>
-                                    </el-col>
-                                </el-row>
-                                <el-row :span="20">
-                                    <el-form-item label="身份证号" prop="idNo">
-                                        <el-input v-model="item.idNo" style="width: 70%"></el-input>
-                                    </el-form-item>
-                                </el-row>
-                                <el-row>
-                                    <el-form-item label="照片">
-                                        <single-upload v-model="item.img"></single-upload>
-                                    </el-form-item>
-                                    <el-form-item label="证书">
-                                        <single-upload v-model="item.certificate"></single-upload>
-                                    </el-form-item>
-                                    <el-form-item>
-                                        <el-button
-                                            class="del"
-                                            type="danger"
-                                            size="small"
-                                            icon="el-icon-delete"
-                                            @click="onDeleteOtherForm(item, index)"
-                                        ></el-button>
-                                    </el-form-item>
-                                </el-row>
+                                <el-input class="name" v-model="item.name"></el-input>
+                                <el-date-picker
+                                    style="width: 17.5%"
+                                    v-model="item.birthday"
+                                    type="date"
+                                    value-format="yyyy-MM-dd"
+                                    placeholder="选择日期"
+                                >
+                                </el-date-picker>
+
+                                <el-select class="sex" v-model="item.sex">
+                                    <el-option label="男" value="男"></el-option>
+                                    <el-option label="女" value="女"></el-option>
+                                </el-select>
+                                <el-input class="phone" v-model="item.phone"></el-input>
+                                <el-input class="focus" v-model="item.idNo"></el-input>
+                                <single-upload class="img" v-model="item.img"></single-upload>
+                                <single-upload v-model="item.certificate"></single-upload>
+                                <div>
+                                    <el-button
+                                        class="del"
+                                        type="danger"
+                                        size="small"
+                                        icon="el-icon-delete"
+                                        @click="onDeleteOtherForm(item, index)"
+                                    ></el-button>
+                                </div>
                             </div>
                         </div>
                         <el-button type="primary" size="mini" @click="onAddOtherForm()" style="margin: 10px" plain
@@ -515,12 +510,63 @@ export default {
     padding: 0 0;
     background-color: transparent;
 }
+.label {
+    text-align: center;
+    height: 40px;
+    width: 70px;
+    line-height: 40px;
+    font-weight: bold;
+    font-size: 13px;
+    &.label1 {
+        width: 100px;
+    }
+    &.label2 {
+        width: 110px;
+    }
+    &.label3 {
+        width: 30px;
+    }
+}
+.add-bottom {
+    display: flex;
+    align-items: center;
+    .name {
+        width: 100%;
+        background: #c9c9c9;
+    }
+}
 .add-con {
-    border-style: solid;
-    border-width: 1px;
-    border-color: #dcdfe6;
     margin-top: 7px;
-    padding-top: 10px;
+    display: flex;
+    align-items: center;
+    .name {
+        width: 70px;
+        padding-right: 10px;
+    }
+    .focus {
+        width: 118px;
+        padding: 0 10px;
+    }
+    .phone {
+        width: 110px;
+        padding-left: 10px;
+    }
+    .del {
+        margin-left: 25px;
+    }
+    .sex {
+        width: 90px;
+        margin-left: 10px;
+    }
+    .img {
+        margin-right: 10px;
+    }
+    /deep/ .el-input__inner {
+        text-align: center;
+    }
+    /deep/ .el-form-item__label {
+        float: none;
+    }
 }
 .width {
     width: 260px;

+ 8 - 7
src/main/vue/src/views/performance/ProgrammeOrgList.vue

@@ -168,7 +168,7 @@
         >
             <el-table-column v-if="multipleMode" align="center" type="selection" width="50"> </el-table-column>
             <!-- <el-table-column prop="id" label="ID" width="100"> </el-table-column> -->
-            <el-table-column prop="name" label="节目名称"> </el-table-column>
+            <el-table-column prop="name" label="节目名称" fixed="left"> </el-table-column>
             <el-table-column prop="specialty" label="参赛专业"> </el-table-column>
             <el-table-column
                 prop="competitionGroup"
@@ -178,14 +178,14 @@
             >
             </el-table-column>
             <el-table-column prop="level" label="参赛级别" min-width="70"> </el-table-column>
-            <el-table-column prop="durationOfWork" label="作品时长" min-width="70"> </el-table-column>
+            <!-- <el-table-column prop="durationOfWork" label="作品时长" min-width="70"> </el-table-column> -->
             <el-table-column prop="quantity" label="参赛人数" min-width="70"> </el-table-column>
             <el-table-column prop="contact" label="联系人" min-width="68"> </el-table-column>
-            <el-table-column prop="phone" label="联系电话" min-width="95"> </el-table-column>
+            <!-- <el-table-column prop="phone" label="联系电话" min-width="95"> </el-table-column> -->
             <el-table-column prop="gradingOrganization" label="考级机构" show-overflow-tooltip min-width="160">
             </el-table-column>
-            <el-table-column prop="organization" label="承办单位" min-width="160"> </el-table-column>
-            <el-table-column prop="examPoint" label="考级点" min-width="160"> </el-table-column>
+            <el-table-column prop="organization" label="承办单位" min-width="180"> </el-table-column>
+            <!-- <el-table-column prop="examPoint" label="考级点" min-width="160"> </el-table-column> -->
             <el-table-column label="操作" align="center" fixed="right" min-width="340">
                 <template slot-scope="{ row }">
                     <el-button @click="showRow(row)" size="mini" plain>查看</el-button>
@@ -372,8 +372,8 @@ export default {
                     this.performances = res.content;
                     if (!this.$route.query.pid) {
                         this.performanceId = res.content[0].id;
-                        this.canAdd();
                     }
+                    this.canAdd();
                 }
             })
             .catch(e => {
@@ -415,7 +415,8 @@ export default {
             let data = {
                 sort: 'createdAt,desc',
                 query: {
-                    organizationId: this.organization.id
+                    organizationId: this.organization.id,
+                    performanceId: Number(this.$route.query.pid)
                 }
             };
             if (this.competitionGroup) {

+ 11 - 0
src/main/vue/src/views/performance/ProgrammeShow.vue

@@ -456,4 +456,15 @@ export default {
     background-color: #ffffff;
     color: #606266;
 }
+/deep/.el-timeline-item__timestamp {
+    color: #0561d9;
+    line-height: 1;
+    font-size: 14px;
+}
+/deep/.el-timeline-item__node {
+    background-color: #5b9bed;
+}
+/deep/.el-timeline-item__tail {
+    border-left: 2px solid #7cace9;
+}
 </style>