hookehuyr

✨ feat(签名控件): 样式和功能调整

...@@ -31,6 +31,7 @@ declare module '@vue/runtime-core' { ...@@ -31,6 +31,7 @@ declare module '@vue/runtime-core' {
31 NutCell: typeof import('@nutui/nutui-taro')['Cell'] 31 NutCell: typeof import('@nutui/nutui-taro')['Cell']
32 NutCheckbox: typeof import('@nutui/nutui-taro')['Checkbox'] 32 NutCheckbox: typeof import('@nutui/nutui-taro')['Checkbox']
33 NutCheckboxGroup: typeof import('@nutui/nutui-taro')['CheckboxGroup'] 33 NutCheckboxGroup: typeof import('@nutui/nutui-taro')['CheckboxGroup']
34 + NutCol: typeof import('@nutui/nutui-taro')['Col']
34 NutConfigProvider: typeof import('@nutui/nutui-taro')['ConfigProvider'] 35 NutConfigProvider: typeof import('@nutui/nutui-taro')['ConfigProvider']
35 NutDatePicker: typeof import('@nutui/nutui-taro')['DatePicker'] 36 NutDatePicker: typeof import('@nutui/nutui-taro')['DatePicker']
36 NutDialog: typeof import('@nutui/nutui-taro')['Dialog'] 37 NutDialog: typeof import('@nutui/nutui-taro')['Dialog']
...@@ -46,6 +47,8 @@ declare module '@vue/runtime-core' { ...@@ -46,6 +47,8 @@ declare module '@vue/runtime-core' {
46 NutRadio: typeof import('@nutui/nutui-taro')['Radio'] 47 NutRadio: typeof import('@nutui/nutui-taro')['Radio']
47 NutRadioGroup: typeof import('@nutui/nutui-taro')['RadioGroup'] 48 NutRadioGroup: typeof import('@nutui/nutui-taro')['RadioGroup']
48 NutRate: typeof import('@nutui/nutui-taro')['Rate'] 49 NutRate: typeof import('@nutui/nutui-taro')['Rate']
50 + NutRow: typeof import('@nutui/nutui-taro')['Row']
51 + NutSignature: typeof import('@nutui/nutui-taro')['Signature']
49 NutSwiper: typeof import('@nutui/nutui-taro')['Swiper'] 52 NutSwiper: typeof import('@nutui/nutui-taro')['Swiper']
50 NutSwiperItem: typeof import('@nutui/nutui-taro')['SwiperItem'] 53 NutSwiperItem: typeof import('@nutui/nutui-taro')['SwiperItem']
51 NutTextarea: typeof import('@nutui/nutui-taro')['Textarea'] 54 NutTextarea: typeof import('@nutui/nutui-taro')['Textarea']
......
1 { 1 {
2 - "name": "custom_form", 2 + "name": "custom_form",
3 - "version": "1.0.0", 3 + "version": "1.0.0",
4 - "private": true, 4 + "private": true,
5 - "description": "自定义表单", 5 + "description": "自定义表单",
6 - "templateInfo": { 6 + "templateInfo": {
7 - "name": "vue3-NutUI4", 7 + "name": "vue3-NutUI4",
8 - "typescript": false, 8 + "typescript": false,
9 - "css": "less" 9 + "css": "less"
10 - }, 10 + },
11 - "scripts": { 11 + "scripts": {
12 - "build:weapp": "taro build --type weapp", 12 + "build:weapp": "taro build --type weapp",
13 - "build:swan": "taro build --type swan", 13 + "build:swan": "taro build --type swan",
14 - "build:alipay": "taro build --type alipay", 14 + "build:alipay": "taro build --type alipay",
15 - "build:tt": "taro build --type tt", 15 + "build:tt": "taro build --type tt",
16 - "build:h5": "taro build --type h5", 16 + "build:h5": "taro build --type h5",
17 - "build:rn": "taro build --type rn", 17 + "build:rn": "taro build --type rn",
18 - "build:qq": "taro build --type qq", 18 + "build:qq": "taro build --type qq",
19 - "build:jd": "taro build --type jd", 19 + "build:jd": "taro build --type jd",
20 - "build:quickapp": "taro build --type quickapp", 20 + "build:quickapp": "taro build --type quickapp",
21 - "dev:weapp": "npm run build:weapp -- --watch", 21 + "dev:weapp": "npm run build:weapp -- --watch",
22 - "dev:swan": "npm run build:swan -- --watch", 22 + "dev:swan": "npm run build:swan -- --watch",
23 - "dev:alipay": "npm run build:alipay -- --watch", 23 + "dev:alipay": "npm run build:alipay -- --watch",
24 - "dev:tt": "npm run build:tt -- --watch", 24 + "dev:tt": "npm run build:tt -- --watch",
25 - "dev:h5": "npm run build:h5 -- --watch", 25 + "dev:h5": "npm run build:h5 -- --watch",
26 - "dev:rn": "npm run build:rn -- --watch", 26 + "dev:rn": "npm run build:rn -- --watch",
27 - "dev:qq": "npm run build:qq -- --watch", 27 + "dev:qq": "npm run build:qq -- --watch",
28 - "dev:jd": "npm run build:jd -- --watch", 28 + "dev:jd": "npm run build:jd -- --watch",
29 - "dev:quickapp": "npm run build:quickapp -- --watch" 29 + "dev:quickapp": "npm run build:quickapp -- --watch"
30 - }, 30 + },
31 - "browserslist": [ 31 + "browserslist": [
32 - "last 3 versions", 32 + "last 3 versions",
33 - "Android >= 4.1", 33 + "Android >= 4.1",
34 - "ios >= 8" 34 + "ios >= 8"
35 - ], 35 + ],
36 - "author": "", 36 + "author": "",
37 - "license": "MIT", 37 + "license": "MIT",
38 - "dependencies": { 38 + "dependencies": {
39 - "@babel/runtime": "^7.7.7", 39 + "@babel/runtime": "^7.7.7",
40 - "@nutui/icons-vue-taro": "^0.0.9", 40 + "@nutui/icons-vue-taro": "^0.0.9",
41 - "@nutui/nutui-taro": "^4.0.5", 41 + "@nutui/nutui-taro": "^4.0.5",
42 - "@tarojs/components": "3.6.2", 42 + "@tarojs/components": "3.6.2",
43 - "@tarojs/extend": "^3.6.2", 43 + "@tarojs/extend": "3.6.2",
44 - "@tarojs/helper": "3.6.2", 44 + "@tarojs/helper": "3.6.2",
45 - "@tarojs/plugin-framework-vue3": "3.6.2", 45 + "@tarojs/plugin-framework-vue3": "3.6.2",
46 - "@tarojs/plugin-html": "3.6.2", 46 + "@tarojs/plugin-html": "3.6.2",
47 - "@tarojs/plugin-http": "^3.6.2", 47 + "@tarojs/plugin-http": "^3.6.2",
48 - "@tarojs/plugin-platform-alipay": "3.6.2", 48 + "@tarojs/plugin-platform-alipay": "3.6.2",
49 - "@tarojs/plugin-platform-h5": "3.6.2", 49 + "@tarojs/plugin-platform-h5": "3.6.2",
50 - "@tarojs/plugin-platform-jd": "3.6.2", 50 + "@tarojs/plugin-platform-jd": "3.6.2",
51 - "@tarojs/plugin-platform-qq": "3.6.2", 51 + "@tarojs/plugin-platform-qq": "3.6.2",
52 - "@tarojs/plugin-platform-swan": "3.6.2", 52 + "@tarojs/plugin-platform-swan": "3.6.2",
53 - "@tarojs/plugin-platform-tt": "3.6.2", 53 + "@tarojs/plugin-platform-tt": "3.6.2",
54 - "@tarojs/plugin-platform-weapp": "3.6.2", 54 + "@tarojs/plugin-platform-weapp": "3.6.2",
55 - "@tarojs/runtime": "3.6.2", 55 + "@tarojs/runtime": "3.6.2",
56 - "@tarojs/shared": "3.6.2", 56 + "@tarojs/shared": "3.6.2",
57 - "@tarojs/taro": "3.6.2", 57 + "@tarojs/taro": "3.6.2",
58 - "@vant/area-data": "^1.4.1", 58 + "@vant/area-data": "^1.4.1",
59 - "axios-miniprogram": "^2.0.0-rc-2", 59 + "axios-miniprogram": "^2.0.0-rc-2",
60 - "browser-md5-file": "^1.1.1", 60 + "browser-md5-file": "^1.1.1",
61 - "dayjs": "^1.11.7", 61 + "dayjs": "^1.11.7",
62 - "pinia": "2.0.10", 62 + "js-sha1": "^0.6.0",
63 - "taro-plugin-pinia": "^1.0.0", 63 + "pinia": "2.0.10",
64 - "taro-plugin-style-resource": "^0.1.9", 64 + "taro-plugin-pinia": "^1.0.0",
65 - "vue": "^3.0.0", 65 + "taro-plugin-style-resource": "^0.1.9",
66 - "weixin-js-sdk": "^1.6.0" 66 + "uuid": "^9.0.0",
67 - }, 67 + "vue": "^3.0.0",
68 - "devDependencies": { 68 + "vue-esign": "^1.1.4",
69 - "@babel/core": "^7.8.0", 69 + "weixin-js-sdk": "^1.6.0"
70 - "@tarojs/cli": "3.6.2", 70 + },
71 - "@tarojs/webpack5-runner": "3.6.2", 71 + "devDependencies": {
72 - "@types/webpack-env": "^1.13.6", 72 + "@babel/core": "^7.8.0",
73 - "@vue/babel-plugin-jsx": "^1.0.6", 73 + "@tarojs/cli": "3.6.2",
74 - "@vue/compiler-sfc": "^3.0.0", 74 + "@tarojs/webpack5-runner": "3.6.2",
75 - "babel-preset-taro": "3.6.2", 75 + "@types/webpack-env": "^1.13.6",
76 - "css-loader": "3.4.2", 76 + "@vue/babel-plugin-jsx": "^1.0.6",
77 - "eslint": "^8.12.0", 77 + "@vue/compiler-sfc": "^3.0.0",
78 - "eslint-config-taro": "3.6.2", 78 + "babel-preset-taro": "3.6.2",
79 - "eslint-plugin-vue": "^8.0.0", 79 + "css-loader": "3.4.2",
80 - "style-loader": "1.3.0", 80 + "eslint": "^8.12.0",
81 - "stylelint": "9.3.0", 81 + "eslint-config-taro": "3.6.2",
82 - "unplugin-vue-components": "^0.23.0", 82 + "eslint-plugin-vue": "^8.0.0",
83 - "vue-loader": "^17.0.0", 83 + "style-loader": "1.3.0",
84 - "webpack": "5.69.0" 84 + "stylelint": "9.3.0",
85 - } 85 + "unplugin-vue-components": "^0.23.0",
86 + "vue-loader": "^17.0.0",
87 + "webpack": "5.69.0"
88 + }
86 } 89 }
......
1 <!-- 1 <!--
2 * @Date: 2022-09-06 16:29:31 2 * @Date: 2022-09-06 16:29:31
3 * @LastEditors: hookehuyr hookehuyr@gmail.com 3 * @LastEditors: hookehuyr hookehuyr@gmail.com
4 - * @LastEditTime: 2023-03-23 15:50:45 4 + * @LastEditTime: 2023-04-13 15:28:49
5 - * @FilePath: /data-table/src/components/SignField/index.vue 5 + * @FilePath: /custom_form/src/components/SignField/index.vue
6 * @Description: 电子签名控件 6 * @Description: 电子签名控件
7 --> 7 -->
8 <template> 8 <template>
9 <div v-if="HideShow" class="sign-page"> 9 <div v-if="HideShow" class="sign-page">
10 <div class="label"> 10 <div class="label">
11 - <span v-if="item.component_props.required">&nbsp;*</span> 11 + <text v-if="item.component_props.required">&nbsp;*</text>
12 {{ item.component_props.label }} 12 {{ item.component_props.label }}
13 - {{ valid }}
14 </div> 13 </div>
15 - <div ref="wrapperRef" class="esign-wrapper"> 14 + <div class="esign-wrapper">
16 - <!-- <div style="padding: 1rem; position: relative; height: 150px; background-color: #FCFCFC;border: 1px solid #EAEAEA; border-radius: 5px;"> --> 15 + <nut-signature v-if="show_sign" class="sign-wrapper" @confirm="confirm" @clear="clear"></nut-signature>
17 - <vue-esign v-if="esignWidth" ref="esign" class="sign-wrapper" :width="esignWidth" :height="esignHeight" :isCrop="isCrop" 16 + <div v-if="image_url">
18 - :lineWidth="lineWidth" :lineColor="lineColor" :bgColor.sync="bgColor" /> 17 + <img :src="image_url" style="width: 100%; border: 1px solid #eaeaea; background-color: #fcfcfc;">
19 - <div v-if="show_sign" class="whiteboard"> 18 + <nut-button color="red" @click="removeSign">删除签名</nut-button>
20 - <div class="text" @click="startSign">
21 - <van-icon name="edit" />&nbsp;点击开始签署电子签名
22 - </div>
23 </div> 19 </div>
24 </div> 20 </div>
25 - <div v-if="!show_sign"> 21 + <div v-if="show_empty" style="padding: 10px 20px; color: red; font-size: 12px;">
26 - <div v-if="show_control" class="control-sign">
27 - <van-row gutter="20" style="padding: 0 1rem">
28 - <van-col :span="12">
29 - <van-button type="default" block @click="handleGenerate">确认签名</van-button>
30 - </van-col>
31 - <van-col :span="12">
32 - <van-button type="default" block @click="cancelSign">取消签名</van-button>
33 - </van-col>
34 - </van-row>
35 - </div>
36 - <div v-else style="padding: 0 1rem">
37 - <van-button type="danger" block @click="handleReset">删除签名</van-button>
38 - </div>
39 - </div>
40 - <div v-if="show_empty" class="van-field__error-message" style="padding: 0 1rem 1rem 1rem">
41 电子签名不能为空 22 电子签名不能为空
42 </div> 23 </div>
43 - <van-divider /> 24 + <nut-divider :style="{ color: '#ebedf0' }" />
25 + <nut-overlay v-model:visible="loading">
26 + <div class="wrapper" style="color: white; font-size: 15px;">
27 + <Loading />
28 + 上传中...
29 + </div>
30 + </nut-overlay>
31 + <nut-toast :msg="toast_msg" v-model:visible="toast_show" :type="toast_type" />
44 </div> 32 </div>
45 -
46 - <van-overlay :show="loading">
47 - <div class="wrapper" @click.stop>
48 - <van-loading vertical color="#FFFFFF">生成中...</van-loading>
49 - </div>
50 - </van-overlay>
51 </template> 33 </template>
52 34
53 <script setup> 35 <script setup>
36 +import Taro, { useLoad } from '@tarojs/taro'
37 +import { ref, computed, watch, onMounted, reactive } from "vue";
54 import { v4 as uuidv4 } from "uuid"; 38 import { v4 as uuidv4 } from "uuid";
55 import { qiniuTokenAPI, qiniuUploadAPI, saveFileAPI } from "@/api/common"; 39 import { qiniuTokenAPI, qiniuUploadAPI, saveFileAPI } from "@/api/common";
56 -import { showSuccessToast, showFailToast } from "vant"; 40 +// import { showSuccessToast, showFailToast } from "vant";
57 -import { useRoute } from "vue-router"; 41 +import { getUrlParams } from "@/utils/tools";
58 -import BMF from "browser-md5-file";
59 import { getEtag } from "@/utils/qetag.js"; // 生成hash值 42 import { getEtag } from "@/utils/qetag.js"; // 生成hash值
60 import dayjs from "dayjs"; 43 import dayjs from "dayjs";
44 +import { Uploader, Loading, Edit } from '@nutui/icons-vue-taro';
61 45
62 const props = defineProps({ 46 const props = defineProps({
63 item: Object, 47 item: Object,
...@@ -66,33 +50,110 @@ const props = defineProps({ ...@@ -66,33 +50,110 @@ const props = defineProps({
66 const HideShow = computed(() => { 50 const HideShow = computed(() => {
67 return !props.item.component_props.disabled 51 return !props.item.component_props.disabled
68 }) 52 })
69 -const $route = useRoute(); 53 +
54 +const toast_msg = ref('');
55 +const toast_show = ref(false);
56 +const toast_type = ref('success');
57 +
70 const emit = defineEmits(["active"]); 58 const emit = defineEmits(["active"]);
71 59
72 -const esign = ref(null); 60 +const show_sign = ref(true);
73 61
74 -let esignWidth = ref(); 62 +const removeSign = () => {
75 -let esignHeight = ref(); 63 + show_sign.value = true;
76 -const wrapperRef = ref(null) 64 + clear()
77 -onMounted(() => { 65 +}
78 - // 动态计算画板canvas宽度/高度
79 - setTimeout(() => {
80 - esignWidth.value = wrapperRef.value.offsetWidth - 32;
81 - esignHeight.value = (window.innerHeight) / 5;
82 - }, 100);
83 -})
84 -const lineWidth = ref(6);
85 -const lineColor = ref("#000000");
86 -const bgColor = ref("#FCFCFC");
87 -const isCrop = ref(false);
88 -const show_control = ref(true);
89 -const image_url = ref("");
90 -const show_empty = ref(false);
91 66
92 -const handleReset = () => { 67 +// 确认签名回调
93 - // 清空画板 68 +const confirm = async (canvas, data) => {
94 - esign.value.reset(); 69 + if (canvas === '请绘制签名') {
95 - show_control.value = true; 70 + validSign();
71 + return false;
72 + }
73 + // H5环境 只能获取canvas
74 + if (process.env.TARO_ENV === 'h5') {
75 + let affix = uuidv4();
76 + let fileName = `uploadForm/${formCode}/${affix}_sign.png`;
77 + let file = dataURLtoFile(canvas.toDataURL("image/png"), fileName); // 生成文件
78 + const imgUrl = await handleUpload(file, fileName);
79 + if (imgUrl) {
80 + loading.value = false;
81 + props.item.value = {
82 + key: "sign",
83 + filed_name: props.item.key,
84 + value: { name: `电子签名${dayjs().format('YYYYMMDDHHmmss')}.png`, url: imgUrl.src},
85 + };
86 + image_url.value = imgUrl.src;
87 + show_sign.value = false;
88 + show_empty.value = false;
89 + emit("active", props.item.value);
90 + }
91 + } else { // weapp 环境
92 + if (!data) {
93 + toast_msg.value = '生成签名失败,请稍后尝试'
94 + toast_show.value = true;
95 + toast_type.value = 'warn';
96 + return false;
97 + }
98 + const fs = Taro.getFileSystemManager()
99 + fs.getFileInfo({
100 + filePath: data,
101 + success: async (res) => {
102 + const file_info = res;
103 + // 获取七牛token
104 + const filename = `uploadForm/${formCode}/${file_info.digest}_sign.png`; // 真实文件名
105 + const getToken = await qiniuTokenAPI({
106 + name: filename,
107 + hash: file_info.digest,
108 + });
109 + // 文件上传七牛云
110 + // 第一次上传
111 + if (getToken.token) {
112 + loading.value = true;
113 + // 自拍图片上传七牛服务器
114 + Taro.uploadFile({
115 + url: 'https://up.qbox.me',
116 + filePath: data,
117 + name: `file`,
118 + formData: {
119 + token: getToken.token,
120 + key: filename
121 + },
122 + })
123 + .then(async (res) => {
124 + res.data = JSON.parse(res.data);
125 + if (res.data.filekey) {
126 + // 保存文件
127 + const { data } = await saveFileAPI({
128 + name: filename,
129 + filekey: res.data.filekey,
130 + hash: file_info.digest,
131 + });
132 + // 生成图片成功
133 + if (data.src) {
134 + loading.value = false;
135 + props.item.value = {
136 + key: "sign",
137 + filed_name: props.item.key,
138 + value: { name: `电子签名${dayjs().format('YYYYMMDDHHmmss')}.png`, url: data.src },
139 + };
140 + image_url.value = data.src;
141 + show_sign.value = false;
142 + show_empty.value = false;
143 + emit("active", props.item.value);
144 + }
145 + }
146 + })
147 + .catch((error) => {
148 + console.error(error)
149 + loading.value = false;
150 + })
151 + }
152 + }
153 + })
154 + }
155 +};
156 +const clear = () => {
96 // 删除可能存在的签名 157 // 删除可能存在的签名
97 image_url.value = ""; 158 image_url.value = "";
98 props.item.value = { 159 props.item.value = {
...@@ -101,11 +162,14 @@ const handleReset = () => { ...@@ -101,11 +162,14 @@ const handleReset = () => {
101 value: "", 162 value: "",
102 }; 163 };
103 emit("active", props.item.value); 164 emit("active", props.item.value);
104 -}; 165 +}
166 +
167 +const image_url = ref("");
168 +const show_empty = ref(false);
105 169
106 /********** 上传七牛云获取图片地址 ***********/ 170 /********** 上传七牛云获取图片地址 ***********/
107 const loading = ref(false); 171 const loading = ref(false);
108 -const formCode = $route.query.code; // 表单code 172 +const formCode = getUrlParams(location.href) ? getUrlParams(location.href).code : ''; // 表单code
109 const uuid = () => { 173 const uuid = () => {
110 let s = []; 174 let s = [];
111 let hexDigits = "0123456789abcdef"; 175 let hexDigits = "0123456789abcdef";
...@@ -169,35 +233,6 @@ const handleUpload = async (files, filename) => { ...@@ -169,35 +233,6 @@ const handleUpload = async (files, filename) => {
169 return imgUrl; 233 return imgUrl;
170 }; 234 };
171 235
172 -const handleGenerate = () => {
173 - esign.value
174 - .generate()
175 - .then(async (res) => {
176 - let affix = uuidv4();
177 - let fileName = `uploadForm/${formCode}/${affix}_sign.png`;
178 - let file = dataURLtoFile(res, fileName); // 生成文件
179 - const imgUrl = await handleUpload(file, fileName);
180 - loading.value = false;
181 - props.item.value = {
182 - key: "sign",
183 - filed_name: props.item.key,
184 - value: { name: `电子签名${dayjs().format('YYYYMMDDHHmmss')}.png`, url: imgUrl.src},
185 - };
186 - image_url.value = imgUrl.src;
187 - show_control.value = false;
188 - show_empty.value = false;
189 - emit("active", props.item.value);
190 - })
191 - .catch((err) => {
192 - loading.value = false;
193 - // 签名生成失败
194 - console.warn(err);
195 - if (err) {
196 - showFailToast("签名生成失败");
197 - }
198 - });
199 -};
200 -
201 //将图片base64转换为文件 236 //将图片base64转换为文件
202 const dataURLtoFile = (dataurl, filename) => { 237 const dataURLtoFile = (dataurl, filename) => {
203 var arr = dataurl.split(","), 238 var arr = dataurl.split(","),
...@@ -211,17 +246,6 @@ const dataURLtoFile = (dataurl, filename) => { ...@@ -211,17 +246,6 @@ const dataURLtoFile = (dataurl, filename) => {
211 return new File([u8arr], filename, { type: mime }); 246 return new File([u8arr], filename, { type: mime });
212 }; 247 };
213 248
214 -const show_sign = ref(true);
215 -const startSign = () => {
216 - show_sign.value = false;
217 - show_empty.value = false;
218 -};
219 -const cancelSign = () => {
220 - show_sign.value = true;
221 - show_empty.value = false;
222 - handleReset();
223 -};
224 -
225 const validSign = () => { 249 const validSign = () => {
226 // 必填项 未生成签名 250 // 必填项 未生成签名
227 if (props.item.component_props.required && !image_url.value) { 251 if (props.item.component_props.required && !image_url.value) {
...@@ -235,50 +259,52 @@ const validSign = () => { ...@@ -235,50 +259,52 @@ const validSign = () => {
235 defineExpose({ validSign }); 259 defineExpose({ validSign });
236 </script> 260 </script>
237 261
238 -<!-- <script> 262 +<script>
239 export default { 263 export default {
240 - methods: { 264 + mounted() {
241 - validSign () { 265 + },
242 - console.warn(0);
243 - }
244 - }
245 } 266 }
246 -</script> --> 267 +</script>
247 268
248 -<style lang="less" scoped> 269 +<style lang="less">
249 .sign-page { 270 .sign-page {
250 271
251 // padding-bottom: 1rem; 272 // padding-bottom: 1rem;
252 .label { 273 .label {
253 - padding: 1rem 1rem 0 1rem; 274 + margin-left: 1rem;
254 - font-size: 0.9rem; 275 + padding-bottom: 20px;
276 + font-size: 26px;
255 font-weight: bold; 277 font-weight: bold;
256 278
257 - span { 279 + text {
258 color: red; 280 color: red;
259 } 281 }
260 } 282 }
261 283
262 .esign-wrapper { 284 .esign-wrapper {
263 - padding: 1rem; 285 + padding: 0 1rem;
264 position: relative; 286 position: relative;
265 box-sizing: border-box; 287 box-sizing: border-box;
266 288
267 .sign-wrapper { 289 .sign-wrapper {
268 - border: 1px solid #eaeaea; 290 + // border: 1px solid #eaeaea;
269 border-radius: 5px; 291 border-radius: 5px;
270 } 292 }
293 + .nut-signature-inner {
294 + background: #fcfcfc !important;
295 + }
271 296
272 .whiteboard { 297 .whiteboard {
273 position: absolute; 298 position: absolute;
274 height: 100%; 299 height: 100%;
275 width: 100%; 300 width: 100%;
276 left: 50%; 301 left: 50%;
277 - top: 50%; 302 + top: 40%;
278 transform: translate(-50%, -50%); 303 transform: translate(-50%, -50%);
279 text-align: center; 304 text-align: center;
280 305
281 .text { 306 .text {
307 + font-size: 28px;
282 position: absolute; 308 position: absolute;
283 width: 100%; 309 width: 100%;
284 top: 50%; 310 top: 50%;
......
...@@ -12,7 +12,7 @@ import ImageUploaderField from '@/components/ImageUploaderField/index.vue' ...@@ -12,7 +12,7 @@ import ImageUploaderField from '@/components/ImageUploaderField/index.vue'
12 import FileUploaderField from '@/components/FileUploaderField/index.vue' 12 import FileUploaderField from '@/components/FileUploaderField/index.vue'
13 import PhoneField from '@/components/PhoneField/index.vue' 13 import PhoneField from '@/components/PhoneField/index.vue'
14 import EmailField from '@/components/EmailField/index.vue' 14 import EmailField from '@/components/EmailField/index.vue'
15 -// import SignField from '@/components/SignField/index.vue' 15 +import SignField from '@/components/SignField/index.vue'
16 import RatePickerField from '@/components/RatePickerField/index.vue' 16 import RatePickerField from '@/components/RatePickerField/index.vue'
17 // import CalendarField from '@/components/CalendarField/index.vue' 17 // import CalendarField from '@/components/CalendarField/index.vue'
18 import IdentityField from '@/components/IdentityField/index.vue' 18 import IdentityField from '@/components/IdentityField/index.vue'
...@@ -119,10 +119,10 @@ export function createComponentType(data) { ...@@ -119,10 +119,10 @@ export function createComponentType(data) {
119 item.name = item.key 119 item.name = item.key
120 item.component = EmailField 120 item.component = EmailField
121 } 121 }
122 - // if (item.component_props.tag === 'sign') { 122 + if (item.component_props.tag === 'sign') {
123 - // item.name = item.key 123 + item.name = item.key
124 - // item.component = SignField 124 + item.component = SignField
125 - // } 125 + }
126 if (item.component_props.tag === 'rate') { 126 if (item.component_props.tag === 'rate') {
127 item.name = item.key 127 item.name = item.key
128 item.component = RatePickerField 128 item.component = RatePickerField
......
...@@ -22,13 +22,20 @@ ...@@ -22,13 +22,20 @@
22 dependencies: 22 dependencies:
23 "@babel/highlight" "7.0.0-beta.44" 23 "@babel/highlight" "7.0.0-beta.44"
24 24
25 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.44", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.18.6": 25 +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6":
26 version "7.18.6" 26 version "7.18.6"
27 resolved "https://mirrors.cloud.tencent.com/npm/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" 27 resolved "https://mirrors.cloud.tencent.com/npm/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
28 integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== 28 integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
29 dependencies: 29 dependencies:
30 "@babel/highlight" "^7.18.6" 30 "@babel/highlight" "^7.18.6"
31 31
32 +"@babel/code-frame@^7.0.0-beta.44", "@babel/code-frame@^7.14.5":
33 + version "7.21.4"
34 + resolved "https://mirrors.cloud.tencent.com/npm/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39"
35 + integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==
36 + dependencies:
37 + "@babel/highlight" "^7.18.6"
38 +
32 "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": 39 "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5":
33 version "7.21.0" 40 version "7.21.0"
34 resolved "https://mirrors.cloud.tencent.com/npm/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298" 41 resolved "https://mirrors.cloud.tencent.com/npm/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298"
...@@ -340,6 +347,11 @@ ...@@ -340,6 +347,11 @@
340 resolved "https://mirrors.cloud.tencent.com/npm/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3" 347 resolved "https://mirrors.cloud.tencent.com/npm/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3"
341 integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ== 348 integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==
342 349
350 +"@babel/parser@^7.18.4":
351 + version "7.21.4"
352 + resolved "https://mirrors.cloud.tencent.com/npm/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17"
353 + integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==
354 +
343 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": 355 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
344 version "7.18.6" 356 version "7.18.6"
345 resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" 357 resolved "https://mirrors.cloud.tencent.com/npm/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2"
...@@ -1633,7 +1645,7 @@ ...@@ -1633,7 +1645,7 @@
1633 swiper "6.8.0" 1645 swiper "6.8.0"
1634 weui "^1.1.2" 1646 weui "^1.1.2"
1635 1647
1636 -"@tarojs/extend@^3.6.2": 1648 +"@tarojs/extend@3.6.2":
1637 version "3.6.2" 1649 version "3.6.2"
1638 resolved "https://mirrors.cloud.tencent.com/npm/@tarojs/extend/-/extend-3.6.2.tgz#f7badc3e322b76b616e10194f030cd5126ce4a6a" 1650 resolved "https://mirrors.cloud.tencent.com/npm/@tarojs/extend/-/extend-3.6.2.tgz#f7badc3e322b76b616e10194f030cd5126ce4a6a"
1639 integrity sha512-lKClhLFk9CPfT2z+djdzX4dBr3KLCzVystjC4KnZ00EAW7j6DlyiudwVUXmPwHAyEkq7n99qKZBy/lWQ3+p+cw== 1651 integrity sha512-lKClhLFk9CPfT2z+djdzX4dBr3KLCzVystjC4KnZ00EAW7j6DlyiudwVUXmPwHAyEkq7n99qKZBy/lWQ3+p+cw==
...@@ -2321,6 +2333,15 @@ ...@@ -2321,6 +2333,15 @@
2321 "@vue/compiler-core" "3.2.47" 2333 "@vue/compiler-core" "3.2.47"
2322 "@vue/shared" "3.2.47" 2334 "@vue/shared" "3.2.47"
2323 2335
2336 +"@vue/compiler-sfc@2.7.14":
2337 + version "2.7.14"
2338 + resolved "https://mirrors.cloud.tencent.com/npm/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz#3446fd2fbb670d709277fc3ffa88efc5e10284fd"
2339 + integrity sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==
2340 + dependencies:
2341 + "@babel/parser" "^7.18.4"
2342 + postcss "^8.4.14"
2343 + source-map "^0.6.1"
2344 +
2324 "@vue/compiler-sfc@3.2.47", "@vue/compiler-sfc@^3.0.0", "@vue/compiler-sfc@^3.0.5": 2345 "@vue/compiler-sfc@3.2.47", "@vue/compiler-sfc@^3.0.0", "@vue/compiler-sfc@^3.0.5":
2325 version "3.2.47" 2346 version "3.2.47"
2326 resolved "https://mirrors.cloud.tencent.com/npm/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz#1bdc36f6cdc1643f72e2c397eb1a398f5004ad3d" 2347 resolved "https://mirrors.cloud.tencent.com/npm/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz#1bdc36f6cdc1643f72e2c397eb1a398f5004ad3d"
...@@ -3997,7 +4018,12 @@ cli-highlight@^2.1.4: ...@@ -3997,7 +4018,12 @@ cli-highlight@^2.1.4:
3997 parse5-htmlparser2-tree-adapter "^6.0.0" 4018 parse5-htmlparser2-tree-adapter "^6.0.0"
3998 yargs "^16.0.0" 4019 yargs "^16.0.0"
3999 4020
4000 -cli-spinners@^2.2.0, cli-spinners@^2.5.0: 4021 +cli-spinners@^2.2.0:
4022 + version "2.8.0"
4023 + resolved "https://mirrors.cloud.tencent.com/npm/cli-spinners/-/cli-spinners-2.8.0.tgz#e97a3e2bd00e6d85aa0c13d7f9e3ce236f7787fc"
4024 + integrity sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==
4025 +
4026 +cli-spinners@^2.5.0:
4001 version "2.7.0" 4027 version "2.7.0"
4002 resolved "https://mirrors.cloud.tencent.com/npm/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" 4028 resolved "https://mirrors.cloud.tencent.com/npm/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a"
4003 integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== 4029 integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==
...@@ -4599,6 +4625,11 @@ csstype@^2.6.8: ...@@ -4599,6 +4625,11 @@ csstype@^2.6.8:
4599 resolved "https://mirrors.cloud.tencent.com/npm/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" 4625 resolved "https://mirrors.cloud.tencent.com/npm/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e"
4600 integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== 4626 integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==
4601 4627
4628 +csstype@^3.1.0:
4629 + version "3.1.2"
4630 + resolved "https://mirrors.cloud.tencent.com/npm/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
4631 + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
4632 +
4602 cuint@^0.2.2: 4633 cuint@^0.2.2:
4603 version "0.2.2" 4634 version "0.2.2"
4604 resolved "https://mirrors.cloud.tencent.com/npm/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" 4635 resolved "https://mirrors.cloud.tencent.com/npm/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b"
...@@ -7418,6 +7449,13 @@ is-ci@^2.0.0: ...@@ -7418,6 +7449,13 @@ is-ci@^2.0.0:
7418 dependencies: 7449 dependencies:
7419 ci-info "^2.0.0" 7450 ci-info "^2.0.0"
7420 7451
7452 +is-core-module@^2.11.0:
7453 + version "2.12.0"
7454 + resolved "https://mirrors.cloud.tencent.com/npm/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4"
7455 + integrity sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==
7456 + dependencies:
7457 + has "^1.0.3"
7458 +
7421 is-core-module@^2.4.0, is-core-module@^2.5.0, is-core-module@^2.9.0: 7459 is-core-module@^2.4.0, is-core-module@^2.5.0, is-core-module@^2.9.0:
7422 version "2.11.0" 7460 version "2.11.0"
7423 resolved "https://mirrors.cloud.tencent.com/npm/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" 7461 resolved "https://mirrors.cloud.tencent.com/npm/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
...@@ -7898,6 +7936,11 @@ js-sdsl@^4.1.4: ...@@ -7898,6 +7936,11 @@ js-sdsl@^4.1.4:
7898 resolved "https://mirrors.cloud.tencent.com/npm/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" 7936 resolved "https://mirrors.cloud.tencent.com/npm/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430"
7899 integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== 7937 integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==
7900 7938
7939 +js-sha1@^0.6.0:
7940 + version "0.6.0"
7941 + resolved "https://mirrors.cloud.tencent.com/npm/js-sha1/-/js-sha1-0.6.0.tgz#adbee10f0e8e18aa07cdea807cf08e9183dbc7f9"
7942 + integrity sha512-01gwBFreYydzmU9BmZxpVk6svJJHrVxEN3IOiGl6VO93bVKYETJ0sIth6DASI6mIFdt7NmfX9UiByRzsYHGU9w==
7943 +
7901 js-tokens@^3.0.0, js-tokens@^3.0.2: 7944 js-tokens@^3.0.0, js-tokens@^3.0.2:
7902 version "3.0.2" 7945 version "3.0.2"
7903 resolved "https://mirrors.cloud.tencent.com/npm/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 7946 resolved "https://mirrors.cloud.tencent.com/npm/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
...@@ -9287,9 +9330,9 @@ num2fraction@^1.2.2: ...@@ -9287,9 +9330,9 @@ num2fraction@^1.2.2:
9287 integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= 9330 integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
9288 9331
9289 nwsapi@^2.2.0: 9332 nwsapi@^2.2.0:
9290 - version "2.2.2" 9333 + version "2.2.3"
9291 - resolved "https://mirrors.cloud.tencent.com/npm/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" 9334 + resolved "https://mirrors.cloud.tencent.com/npm/nwsapi/-/nwsapi-2.2.3.tgz#00e04dfd5a4a751e5ec2fecdc75dfd2f0db820fa"
9292 - integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== 9335 + integrity sha512-jscxIO4/VKScHlbmFBdV1Z6LXnLO+ZR4VMtypudUdfwtKxUN3TQcNFIHLwKtrUbDyHN4/GycY9+oRGZ2XMXYPw==
9293 9336
9294 oauth-sign@~0.9.0: 9337 oauth-sign@~0.9.0:
9295 version "0.9.0" 9338 version "0.9.0"
...@@ -10323,7 +10366,7 @@ postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.23, postcss@^7.0.32, postcss@^7.0. ...@@ -10323,7 +10366,7 @@ postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.23, postcss@^7.0.32, postcss@^7.0.
10323 picocolors "^0.2.1" 10366 picocolors "^0.2.1"
10324 source-map "^0.6.1" 10367 source-map "^0.6.1"
10325 10368
10326 -postcss@^8.1.10, postcss@^8.3.5, postcss@^8.4.18, postcss@^8.4.19: 10369 +postcss@^8.1.10, postcss@^8.3.5, postcss@^8.4.14, postcss@^8.4.18, postcss@^8.4.19:
10327 version "8.4.21" 10370 version "8.4.21"
10328 resolved "https://mirrors.cloud.tencent.com/npm/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" 10371 resolved "https://mirrors.cloud.tencent.com/npm/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4"
10329 integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== 10372 integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==
...@@ -10368,9 +10411,9 @@ prettier@^1.14.2: ...@@ -10368,9 +10411,9 @@ prettier@^1.14.2:
10368 integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== 10411 integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
10369 10412
10370 prettier@^2.7.1: 10413 prettier@^2.7.1:
10371 - version "2.8.6" 10414 + version "2.8.7"
10372 - resolved "https://mirrors.cloud.tencent.com/npm/prettier/-/prettier-2.8.6.tgz#5c174b29befd507f14b83e3c19f83fdc0e974b71" 10415 + resolved "https://mirrors.cloud.tencent.com/npm/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450"
10373 - integrity sha512-mtuzdiBbHwPEgl7NxWlqOkithPyp4VN93V7VeHVWBF+ad3I5avc0RVDT4oImXQy9H/AqxA2NSQH8pSxHW6FYbQ== 10416 + integrity sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==
10374 10417
10375 pretty-bytes@^5.3.0: 10418 pretty-bytes@^5.3.0:
10376 version "5.6.0" 10419 version "5.6.0"
...@@ -10962,7 +11005,16 @@ resolve-url@^0.2.1: ...@@ -10962,7 +11005,16 @@ resolve-url@^0.2.1:
10962 resolved "https://mirrors.cloud.tencent.com/npm/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 11005 resolved "https://mirrors.cloud.tencent.com/npm/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
10963 integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= 11006 integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
10964 11007
10965 -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.22.0, resolve@^1.22.1: 11008 +resolve@^1.1.6:
11009 + version "1.22.2"
11010 + resolved "https://mirrors.cloud.tencent.com/npm/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
11011 + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==
11012 + dependencies:
11013 + is-core-module "^2.11.0"
11014 + path-parse "^1.0.7"
11015 + supports-preserve-symlinks-flag "^1.0.0"
11016 +
11017 +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.22.0, resolve@^1.22.1:
10966 version "1.22.1" 11018 version "1.22.1"
10967 resolved "https://mirrors.cloud.tencent.com/npm/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 11019 resolved "https://mirrors.cloud.tencent.com/npm/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
10968 integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 11020 integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
...@@ -12776,6 +12828,11 @@ uuid@^8.3.2: ...@@ -12776,6 +12828,11 @@ uuid@^8.3.2:
12776 resolved "https://mirrors.cloud.tencent.com/npm/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 12828 resolved "https://mirrors.cloud.tencent.com/npm/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
12777 integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 12829 integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
12778 12830
12831 +uuid@^9.0.0:
12832 + version "9.0.0"
12833 + resolved "https://mirrors.cloud.tencent.com/npm/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5"
12834 + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==
12835 +
12779 validate-npm-package-license@^3.0.1: 12836 validate-npm-package-license@^3.0.1:
12780 version "3.0.4" 12837 version "3.0.4"
12781 resolved "https://mirrors.cloud.tencent.com/npm/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 12838 resolved "https://mirrors.cloud.tencent.com/npm/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
...@@ -12856,6 +12913,13 @@ vue-demi@*: ...@@ -12856,6 +12913,13 @@ vue-demi@*:
12856 resolved "https://mirrors.cloud.tencent.com/npm/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" 12913 resolved "https://mirrors.cloud.tencent.com/npm/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99"
12857 integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== 12914 integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==
12858 12915
12916 +vue-esign@^1.1.4:
12917 + version "1.1.4"
12918 + resolved "https://mirrors.cloud.tencent.com/npm/vue-esign/-/vue-esign-1.1.4.tgz#3e0cc2b72c3ef5914822929193f6a9ddeb775b3a"
12919 + integrity sha512-7Ix5PdcyyhVfsvrT9a+yp5+36gbQ0/bpDO+QSLT58IgJ5t164PEptOy5Nslw8bZbk3n3Hc7SP5B8eXQ8X8W+OA==
12920 + dependencies:
12921 + vue "^2.5.11"
12922 +
12859 vue-eslint-parser@^8.0.1: 12923 vue-eslint-parser@^8.0.1:
12860 version "8.3.0" 12924 version "8.3.0"
12861 resolved "https://mirrors.cloud.tencent.com/npm/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz#5d31129a1b3dd89c0069ca0a1c88f970c360bd0d" 12925 resolved "https://mirrors.cloud.tencent.com/npm/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz#5d31129a1b3dd89c0069ca0a1c88f970c360bd0d"
...@@ -12878,6 +12942,14 @@ vue-loader@^17.0.0: ...@@ -12878,6 +12942,14 @@ vue-loader@^17.0.0:
12878 hash-sum "^2.0.0" 12942 hash-sum "^2.0.0"
12879 loader-utils "^2.0.0" 12943 loader-utils "^2.0.0"
12880 12944
12945 +vue@^2.5.11:
12946 + version "2.7.14"
12947 + resolved "https://mirrors.cloud.tencent.com/npm/vue/-/vue-2.7.14.tgz#3743dcd248fd3a34d421ae456b864a0246bafb17"
12948 + integrity sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==
12949 + dependencies:
12950 + "@vue/compiler-sfc" "2.7.14"
12951 + csstype "^3.1.0"
12952 +
12881 vue@^3.0.0: 12953 vue@^3.0.0:
12882 version "3.2.47" 12954 version "3.2.47"
12883 resolved "https://mirrors.cloud.tencent.com/npm/vue/-/vue-3.2.47.tgz#3eb736cbc606fc87038dbba6a154707c8a34cff0" 12955 resolved "https://mirrors.cloud.tencent.com/npm/vue/-/vue-3.2.47.tgz#3eb736cbc606fc87038dbba6a154707c8a34cff0"
......