xuqiang 4 лет назад
Родитель
Сommit
85e8f9f9ed

+ 2 - 2
src/main/pc-space/src/plugins/http.js

@@ -4,9 +4,9 @@ import qs from 'qs';
 let baseUrl = 'http://localhost:8080';
 switch (process.env.NODE_ENV) {
     case 'development':
-        baseUrl = 'https://nfttest.9space.vip/';
+        // baseUrl = 'https://nfttest.9space.vip/';
         // baseUrl = 'http://192.168.50.190:8080';
-        // baseUrl = 'http://localhost:8080';
+        baseUrl = 'http://localhost:8080';
         // baseUrl = 'http://192.168.50.190:8080';
         break;
     case 'test':

+ 9 - 0
src/main/pc-space/src/views/AssetDetail.vue

@@ -225,6 +225,15 @@ export default {
         }
     },
     methods: {
+        // aaa() {
+        //     this.$http
+        //         .post('/identityAuth/apply', {
+        //             ...form
+        //         })
+        //         .then(() => {
+        //             this.$store.dispatch('getUserInfo');
+        //         });
+        // },
         getDetail() {
             this.$http.get('/asset/get/' + this.$route.query.id).then(res => {
                 this.info = res;

+ 44 - 8
src/main/pc-space/src/views/user/AccountData.vue

@@ -1,8 +1,8 @@
 <template>
     <div class="container">
         <el-upload class="top" :action="uploadUrl" :show-file-list="false" :before-upload="beforeAvatarUpload2">
-            <img v-if="userInfo.bg" class="top" :src="userInfo.bg || ''" alt="" />
-            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            <img class="top" :src="userInfo.bg || userInfo.avatar" alt="" />
+            <i class="el-icon-plus avatar-uploader-icon"></i>
         </el-upload>
         <div class="top1">
             <div class="title">
@@ -160,6 +160,7 @@
 import { mapState } from 'vuex';
 import resolveUrl from 'resolve-url';
 import user from '../../mixins/user';
+import pageableTable from '@/mixins/pageableTable';
 import Clipboard from 'clipboard';
 // import FansInfo from '../../components/FansInfo.vue';
 export default {
@@ -167,14 +168,17 @@ export default {
         this.uploadUrl = resolveUrl(this.$baseUrl, 'upload/file');
     },
     // components: { FansInfo },
-    mixins: [user],
+    mixins: [user, pageableTable],
     data() {
         return {
             tabs: ['粉丝', '关注'],
             active: '',
             list: [],
             empty: false,
-            value: ''
+            value: '',
+            url: '/identityAuth/all',
+            org: '',
+            lists: []
         };
     },
     computed: {
@@ -199,7 +203,9 @@ export default {
             }
         }
     },
-
+    mounted() {
+        this.beforeData();
+    },
     methods: {
         beforeAvatarUpload(file) {
             this.updateFile(file, 100).then(img => {
@@ -239,6 +245,21 @@ export default {
                 });
             }
         },
+        beforeData() {
+            return {
+                query: {
+                    userId: this.userInfo.id
+                }
+            };
+        },
+        setList(list) {
+            this.lists = list.filter(item => {
+                return item.userId === this.userInfo.id;
+            });
+            this.org = this.lists[0].org;
+            console.log(this.lists);
+            // if(list)
+        },
         Auths() {
             // if (this.type) {
             //     if (this.type.name == 'ROLE_INSTITUTION') {
@@ -257,11 +278,26 @@ export default {
             // } else {
             //     this.$router.push('/authentication');
             // }
-            if (this.userInfo.authStatus === 'PENDING') {
-                this.$router.push('/userauthentication');
-            } else if (this.userInfo.authStatus === 'NOT_AUTH') {
+            // if (this.userInfo.authStatus === 'PENDING') {
+            //     this.$router.push('/authentication');
+            // } else if (this.userInfo.authStatus === 'NOT_AUTH') {
+            //     this.$router.push('/authentication');
+            // }
+            // if (!this.org) {
+            if (this.userInfo.authStatus === 'NOT_AUTH') {
                 this.$router.push('/authentication');
+            } else {
+                if (this.userInfo.authStatus !== 'NOT_AUTH' && this.org == false) {
+                    this.$router.push('/userauthentication');
+                } else {
+                    this.$router.push('/enterpriseauthentication');
+                }
             }
+
+            //     this.$router.push('/authentication');
+            //     console.log(111);
+            // }
+            // this.$router.push('/authentication');
             // ROLE_INSTITUTION 企业
             // ROLE_PERSONAL 个人
         },

+ 2 - 2
src/main/pc-space/src/views/user/Authentication.vue

@@ -9,12 +9,12 @@
                 <div class="text2">个人通过实名认证后,绑定相对应银 行卡即可进行交易售卖</div>
                 <el-button @click="all('/userauthentication')">个人认证</el-button>
             </div>
-            <!-- <div class="box1">
+            <div class="box1">
                 <img class="img" src="../../assets/user/renzheng-icon-qiye@3x.png" alt="" />
                 <div class="text1">企业认证</div>
                 <div class="text2">企业通过营业执照认证后,并签署 相应合同即可进行售卖,冰箱周部 分定制化服务</div>
                 <el-button @click="all('/enterpriseauthentication')">企业认证</el-button>
-            </div> -->
+            </div>
         </div>
     </div>
 </template>

+ 111 - 86
src/main/pc-space/src/views/user/EnterpriseAuthentication.vue

@@ -4,60 +4,83 @@
         <div class="box">
             <div class="name">企业认证 <span>账户实名认证后不能修改</span></div>
             <div class="border"></div>
-            <div class="fail" v-if="userInfo.authStatus === 'PENDING' || userInfo.authStatus === 'FAIL'">
+            <div
+                class="fail"
+                v-if="
+                    userInfo.authStatus === 'PENDING' ||
+                    userInfo.authStatus === 'FAIL' ||
+                    userInfo.authStatus === 'SUCCESS'
+                "
+            >
                 <img class="text1" src="../../assets/user/icon-xiugaichengg@3x (1).png" alt="" />
-                <div class="text2">已提交企业认证</div>
-                <div class="text3">等待后台审核信息,预计1-3个工作日内完成</div>
-                <div class="botn" @click="Jump">返回</div>
+                <div class="text2" v-if="userInfo.authStatus === 'PENDING'">已提交企业认证</div>
+                <div class="text2" v-if="userInfo.authStatus === 'FAIL'">认证失败</div>
+                <div class="text2" v-if="userInfo.authStatus === 'SUCCESS'">认证成功</div>
+                <div class="text3" v-if="userInfo.authStatus === 'PENDING'">
+                    等待后台审核信息,预计1-3个工作日内完成
+                </div>
+                <div class="text3" v-if="userInfo.authStatus === 'SUCCESS'">账户实名认证后不能修改</div>
+                <div class="text3" v-if="userInfo.authStatus === 'FAIL'">信息填写有误</div>
+                <div class="botn" v-if="userInfo.authStatus !== 'FAIL'" @click="all('accountdata')">返回</div>
+                <div class="botn" v-if="userInfo.authStatus === 'FAIL'" @click="Jump2">重新认证</div>
             </div>
-            <div v-if="userInfo.authStatus === 'NOT_AUTH' || userInfo.authStatus === 'SUCCESS'">
+            <div v-if="userInfo.authStatus === 'NOT_AUTH'">
                 <el-form ref="form" :label-position="labelPosition" :model="sizeForm" :rules="registerRule">
-                    <el-form-item label="法人姓名" prop="nickname">
+                    <el-form-item label="法人姓名" prop="realName">
                         <el-input
                             style="width: 300px"
                             placeholder="请输入您的真实姓名"
-                            v-model="sizeForm.nickname"
+                            v-model="sizeForm.realName"
                         ></el-input>
                     </el-form-item>
-                    <el-form-item label="法人身份证号" prop="IDs">
+                    <el-form-item label="法人身份证号" prop="idNo">
                         <el-input
                             style="width: 300px"
                             placeholder="请输入18位身份证号"
-                            v-model="sizeForm.IDs"
+                            v-model="sizeForm.idNo"
                         ></el-input>
                     </el-form-item>
 
-                    <el-form-item label="法人身份证 (正面图)" prop="photoFront">
-                        <single-upload class="upload" v-model="sizeForm.photoFront"></single-upload>
+                    <el-form-item label="法人身份证 (正面图)" prop="idFront">
+                        <single-upload class="upload" v-model="sizeForm.idFront"></single-upload>
                     </el-form-item>
                     <div class="description">{{ explain }}</div>
-                    <el-form-item label="法人身份证 (反面图)" prop="photoBackside">
-                        <single-upload class="upload" v-model="sizeForm.photoBackside"></single-upload>
+                    <el-form-item label="法人身份证 (反面图)" prop="idBack">
+                        <single-upload class="upload" v-model="sizeForm.idBack"></single-upload>
                     </el-form-item>
                     <div class="description">{{ explain }}</div>
-                    <el-form-item label="企业名称" prop="name">
-                        <el-input style="width: 300px" placeholder="请输入企业名称" v-model="sizeForm.name"></el-input>
-                    </el-form-item>
-                    <el-form-item label="工商营业执照注册号/统一社会信用代码" prop="uscc">
+                    <el-form-item label="企业名称" prop="orgName">
                         <el-input
                             style="width: 300px"
-                            placeholder="工商营业执照注册号/统一社会信用代码"
-                            v-model="sizeForm.uscc"
+                            placeholder="请输入企业名称"
+                            v-model="sizeForm.orgName"
                         ></el-input>
                     </el-form-item>
-                    <el-form-item prop="establishedAt" label="工商营业执照有效日期截止时间">
-                        <el-date-picker
-                            v-model="sizeForm.establishedAt"
-                            type="date"
+                    <el-form-item label="工商营业执照注册号/统一社会信用代码" prop="orgNo">
+                        <el-input
                             style="width: 300px"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
+                            placeholder="工商营业执照注册号/统一社会信用代码"
+                            v-model="sizeForm.orgNo"
+                        ></el-input>
                     </el-form-item>
+                    <div class="content">
+                        <el-form-item prop="orgLicenseExpire" label="工商营业执照有效日期截止时间">
+                            <el-date-picker
+                                v-model="sizeForm.orgLicenseExpire"
+                                type="date"
+                                style="width: 300px"
+                                value-format="yyyy-MM-dd"
+                                placeholder="选择日期"
+                            >
+                            </el-date-picker>
+                        </el-form-item>
+                        <template>
+                            <el-radio v-model="sizeForm.radio" label="1">长期</el-radio>
+                        </template>
+                    </div>
                     <div class="description">证照有效截止日期需大于60天,如证照上日期为长期或无,请勾选长期</div>
-                    <el-form-item label="营业执照" prop="businessLicense">
-                        <single-upload class="upload" v-model="sizeForm.businessLicense"></single-upload>
+                    <el-form-item label="营业执照" prop="orgLicense">
+                        <single-upload class="upload" v-model="sizeForm.orgLicense"></single-upload>
                     </el-form-item>
                     <div class="description">请上传清晰图片,格式JPG或PNG,大小不得超过 2 M</div>
                 </el-form>
@@ -77,28 +100,35 @@ export default {
         return {
             labelPosition: 'right',
             sizeForm: {
-                nickname: '',
-                uscc: '',
-                photoFront: '',
-                businessLicense: '',
-                photoBackside: '',
-                name: '',
-                establishedAt: '',
+                realName: '',
+                orgLicenseExpire: '',
+                idFront: '',
+                orgLicense: '',
+                idBack: '',
+                orgName: '',
+                orgNo: '',
                 // phone: '',
-                IDs: ''
+                idNo: '',
+                radio: '1'
             },
             typeFl: {},
             registerRule: {
-                uscc: { required: true, min: 18, max: 18, message: '请输入18位统一社会信用代码', trigger: 'blur' },
-                IDs: { required: true, min: 18, max: 18, message: '请输入18位身份证号', trigger: 'blur' },
-                nickname: { required: true, message: '请输入您的真实姓名', trigger: 'blur' },
-                establishedAt: { required: true, message: '请选择', trigger: 'blur' },
-                name: { required: true, message: '请输入企业名称', trigger: 'blur' },
+                orgNo: {
+                    required: true,
+                    min: 18,
+                    max: 18,
+                    message: '请输入18位统一社会信用代码',
+                    trigger: 'blur'
+                },
+                idNo: { required: true, min: 18, max: 18, message: '请输入18位身份证号', trigger: 'blur' },
+                realName: { required: true, message: '请输入', trigger: 'blur' },
+                orgLicenseExpire: { required: true, message: '请选择', trigger: 'blur' },
+                // orgNo: { required: true, message: '请选择', trigger: 'blur' },
+                orgName: { required: true, message: '请输入企业名称', trigger: 'blur' },
                 // phone: { required: true, message: '请输入您的联系方式', trigger: 'blur' },
-                email: { type: 'email', required: true, message: '请输入您的邮箱', trigger: 'blur' },
-                photoFront: { required: true, message: '请添加您的法人身份证(正面)', trigger: 'blur' },
-                photoBackside: { required: true, message: '请添加您的法人身份证(反面)', trigger: 'blur' },
-                businessLicense: { required: true, message: '请添加营业执照', trigger: 'blur' }
+                idFront: { required: true, message: '请添加您的法人身份证(正面)', trigger: 'blur' },
+                idBack: { required: true, message: '请添加您的法人身份证(反面)', trigger: 'blur' },
+                orgLicense: { required: true, message: '请添加营业执照', trigger: 'blur' }
             }
         };
     },
@@ -123,7 +153,7 @@ export default {
     //         .then(res => {
     //             this.sizeForm = {
     //                 ...res,
-    //                 nickname: this.userInfo.nickname,
+    //                 realName: this.userInfo.realName,
     //                 phone: this.userInfo.phone,
     //                 avatar: this.userInfo.avatar,
     //                 email: this.userInfo.email
@@ -137,6 +167,13 @@ export default {
         Jump() {
             this.$router.go(-1);
         },
+        Jump2() {
+            let status = 'NOT_AUTH';
+            this.updateUser({ authStatus: status }).then(res => {
+                // console.log(res);
+                this.$router.push('/accountdata');
+            });
+        },
         onSubmit() {
             this.$refs.form.validate(valid => {
                 if (valid) {
@@ -147,44 +184,21 @@ export default {
             });
         },
         preservation() {
-            let data = { ...this.sizeForm };
-            delete data.nickname;
-            delete data.phone;
-            delete data.email;
-            data.userId = this.userInfo.id;
-            this.saving = true;
-            let userInfo = {
-                ...this.userInfo,
-                nickname: this.sizeForm.nickname,
-                phone: this.sizeForm.phone,
-                avatar: this.userInfo.avatar,
-                email: this.sizeForm.email
-            };
-            userInfo.authorities = [
-                ...userInfo.authorities,
-                {
-                    name: 'ROLE_INSTITUTION'
-                }
-            ];
-            console.log(userInfo);
-            // this.$http
-            //     .post('user/save', userInfo, {
-            //         body: 'json'
-            //     })
-            //     .then(res => {
-            //         this.sizeForm.avatar = res.avatar;
-            //         this.$store.dispatch('getUserInfo');
-            //         return this.$http.post('/institution/save', data, { body: 'json' }).then(res => {
-            //             this.sizeForm = res;
-            //             this.saving = false;
-            //             this.$store.dispatch('getUserInfo');
-            //         });
-            //     })
-            //     .catch(e => {
-            //         console.log(e);
-            //         this.saving = false;
-            //         this.$message.error(e.error);
-            //     });
+            let form = { ...this.sizeForm };
+            form.userId = this.userInfo.id;
+            form.status = 'PENDING';
+            form.org = true;
+            console.log(form);
+            // let org = false;
+            // this.updateUser({ org: org }).then(res => {
+            this.$http
+                .post('/identityAuth/apply', {
+                    ...form
+                })
+                .then(res => {
+                    this.$store.dispatch('getUserInfo', res);
+                });
+            // });
         }
     }
 };
@@ -206,7 +220,13 @@ export default {
         color: #ffffff;
     }
     /deep/ .el-form-item__error {
-        margin-left: 294px;
+        // margin-left: 194px;
+    }
+    /deep/ .el-form-item__content {
+        display: flex;
+    }
+    /deep/ .el-radio {
+        margin-top: 14px;
     }
     /deep/ .el-button {
         width: 130px;
@@ -234,6 +254,11 @@ export default {
             margin-left: 20px;
         }
     }
+    .content {
+        display: flex;
+        width: 670px;
+        justify-content: space-between;
+    }
     .title {
         height: 42px;
         font-size: 32px;

+ 34 - 39
src/main/pc-space/src/views/user/UserAuthentication.vue

@@ -4,13 +4,27 @@
         <div class="box">
             <div class="name">个人认证 <span>账户实名认证后不能修改</span></div>
             <div class="border"></div>
-            <div class="fail" v-if="userInfo.authStatus === 'PENDING' || userInfo.authStatus === 'FAIL'">
+            <div
+                class="fail"
+                v-if="
+                    userInfo.authStatus === 'PENDING' ||
+                    userInfo.authStatus === 'FAIL' ||
+                    userInfo.authStatus === 'SUCCESS'
+                "
+            >
                 <img class="text1" src="../../assets/user/icon-xiugaichengg@3x (1).png" alt="" />
-                <div class="text2">已提交个人认证</div>
-                <div class="text3">等待后台审核信息,预计1-3个工作日内完成</div>
-                <div class="botn" @click="Jump">返回</div>
+                <div class="text2" v-if="userInfo.authStatus === 'PENDING'">已提交个人认证</div>
+                <div class="text2" v-if="userInfo.authStatus === 'FAIL'">认证失败</div>
+                <div class="text2" v-if="userInfo.authStatus === 'SUCCESS'">认证成功</div>
+                <div class="text3" v-if="userInfo.authStatus === 'PENDING'">
+                    等待后台审核信息,预计1-3个工作日内完成
+                </div>
+                <div class="text3" v-if="userInfo.authStatus === 'SUCCESS'">账户实名认证后不能修改</div>
+                <div class="text3" v-if="userInfo.authStatus === 'FAIL'">信息填写有误</div>
+                <div class="botn" v-if="userInfo.authStatus !== 'FAIL'" @click="all('accountdata')">返回</div>
+                <div class="botn" v-if="userInfo.authStatus === 'FAIL'" @click="Jump2">重新认证</div>
             </div>
-            <div v-if="userInfo.authStatus === 'NOT_AUTH' || userInfo.authStatus === 'SUCCESS'">
+            <div v-if="userInfo.authStatus === 'NOT_AUTH'">
                 <el-form ref="form" :label-position="labelPosition" :model="sizeForm" :rules="registerRule">
                     <el-form-item label="姓名" prop="nickname">
                         <el-input
@@ -72,7 +86,7 @@ export default {
             },
             typeFl: {},
             registerRule: {
-                idNo: { required: true, message: '请输入您的身份证号', trigger: 'blur' },
+                idNo: { required: true, min: 18, max: 18, message: '请输入您的身份证号', trigger: 'blur' },
                 realName: { required: true, message: '请输入您的真实姓名', trigger: 'blur' },
                 phone: { required: true, message: '请输入您的联系方式', trigger: 'blur' },
                 email: { type: 'email', required: true, message: '请输入您的邮箱', trigger: 'blur' },
@@ -97,26 +111,19 @@ export default {
         }
     },
     created() {
-        //     this.$http
-        //         .get('/personal/my')
-        //         .then(res => {
-        //             this.sizeForm = {
-        //                 ...res,
-        //                 nickname: this.userInfo.nickname,
-        //                 phone: this.userInfo.phone,
-        //                 avatar: this.userInfo.avatar,
-        //                 email: this.userInfo.email
-        //             };
-        //         })
-        //         .catch(e => {
-        //             console.log(e);
-        //         });
         (this.sizeForm.phone = this.userInfo.phone), (this.sizeForm.email = this.userInfo.email);
     },
     methods: {
         Jump() {
             this.$router.go(-1);
         },
+        Jump2() {
+            let status = 'NOT_AUTH';
+            this.updateUser({ authStatus: status }).then(res => {
+                // console.log(res);
+                this.$router.push('/accountdata');
+            });
+        },
         onSubmit() {
             this.$refs.form.validate(valid => {
                 if (valid) {
@@ -132,29 +139,16 @@ export default {
         },
         preservation() {
             let form = { ...this.sizeForm };
-            delete form.phone;
-            delete form.email;
             form.userId = this.userInfo.id;
             form.status = 'PENDING';
-            let userInfo = {
-                ...this.userInfo,
-                phone: this.sizeForm.phone,
-                email: this.sizeForm.email
-            };
-            userInfo.authorities = [
-                ...userInfo.authorities,
-                {
-                    name: 'ROLE_PERSONAL',
-                    description: '个人机构'
-                }
-            ];
-            // console.log(userInfo);
+            form.org = false;
+            // console.log(form);
             this.$http
                 .post('/identityAuth/apply', {
-                    userInfo
+                    ...form
                 })
-                .then(() => {
-                    this.$store.dispatch('getUserInfo');
+                .then(res => {
+                    this.$store.dispatch('getUserInfo', res);
                 });
         }
     }
@@ -245,6 +239,7 @@ export default {
                 font-weight: 400;
                 color: #ffffff;
                 line-height: 24px;
+                margin-bottom: 30px;
             }
             .botn {
                 width: 130px;
@@ -256,7 +251,7 @@ export default {
                 text-align: center;
                 background: linear-gradient(133deg, @prim 0%, @warn 100%);
                 border-radius: 4px;
-                margin: 87px 0 0 518px;
+                margin: 0 auto;
             }
         }
         .name {

+ 86 - 88
src/main/vue/package-lock.json

@@ -1871,6 +1871,70 @@
           "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"
+          }
+        },
+        "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"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+          "dev": true,
+          "optional": true
+        },
+        "emojis-list": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+          "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+          "dev": true,
+          "optional": true
+        },
+        "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.2",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
+          "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
         "minimist": {
           "version": "1.2.5",
           "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
@@ -1885,6 +1949,28 @@
           "requires": {
             "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"
+          }
+        },
+        "vue-loader-v16": {
+          "version": "npm:vue-loader@16.8.3",
+          "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
+          "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "chalk": "^4.1.0",
+            "hash-sum": "^2.0.0",
+            "loader-utils": "^2.0.0"
+          }
         }
       }
     },
@@ -13991,94 +14077,6 @@
         }
       }
     },
-    "vue-loader-v16": {
-      "version": "npm:vue-loader@16.8.3",
-      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
-      "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
-      "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"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "optional": true
-        },
-        "emojis-list": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
-          "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
-          "dev": true,
-          "optional": true
-        },
-        "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.2",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
-          "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
-          "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.3",
       "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz",

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

@@ -50,6 +50,6 @@
     "prettier": "1.19.1",
     "style-resources-loader": "^1.3.3",
     "vue-cli-plugin-style-resources-loader": "^0.1.4",
-    "vue-template-compiler": "^2.6.10"
+    "vue-template-compiler": "^2.6.14"
   }
 }

+ 5 - 5
src/main/vue/yarn.lock

@@ -3096,7 +3096,7 @@ dateformat@^2.0.0:
 
 de-indent@^1.0.2:
   version "1.0.2"
-  resolved "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
+  resolved "https://registry.nlark.com/de-indent/download/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
   integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
 
 debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
@@ -9687,10 +9687,10 @@ vue-style-loader@^4.1.0, vue-style-loader@^4.1.2:
     hash-sum "^1.0.2"
     loader-utils "^1.0.2"
 
-vue-template-compiler@^2.6.10:
-  version "2.6.11"
-  resolved "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080"
-  integrity sha1-wEcE749JixUxMAGJk+VjCdRpgIA=
+vue-template-compiler@^2.6.14:
+  version "2.6.14"
+  resolved "https://registry.nlark.com/vue-template-compiler/download/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763"
+  integrity sha1-ovDn2YVnDULJye4NBE/tdpD092M=
   dependencies:
     de-indent "^1.0.2"
     he "^1.1.0"