安全例会模块开发->参会人员上传证明
parent
44dd6ba00b
commit
869c0a6cda
|
@ -1,162 +1,117 @@
|
||||||
{
|
{
|
||||||
"name": "UniApp_integrated_whb",
|
|
||||||
"lockfileVersion": 3,
|
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"lockfileVersion": 1,
|
||||||
"": {
|
"dependencies": {
|
||||||
"dependencies": {
|
"@babel/parser": {
|
||||||
"@dcloudio/uni-ui": "^1.5.0",
|
"version": "7.24.0",
|
||||||
"moment": "^2.29.4",
|
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.0.tgz",
|
||||||
"vue-aliplayer": "^1.0.0"
|
"integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==",
|
||||||
},
|
"dev": true
|
||||||
"devDependencies": {
|
|
||||||
"@types/html5plus": "^1.0.2",
|
|
||||||
"@types/uni-app": "^1.4.4"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"node_modules/@babel/parser": {
|
"@dcloudio/uni-ui": {
|
||||||
"version": "7.23.6",
|
"version": "1.5.2",
|
||||||
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.6.tgz",
|
"resolved": "https://registry.npmmirror.com/@dcloudio/uni-ui/-/uni-ui-1.5.2.tgz",
|
||||||
"integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==",
|
"integrity": "sha512-/MO31TELyHcKt3nS5bo1t8lQmLSnP9EKlHcShjqM27gL0QeYtoc9UekOITRbA9zi8rnlII3Aw91DHtny3IodFg=="
|
||||||
"dev": true,
|
|
||||||
"bin": {
|
|
||||||
"parser": "bin/babel-parser.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.0.0"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"node_modules/@dcloudio/uni-ui": {
|
"@types/html5plus": {
|
||||||
"version": "1.5.0",
|
|
||||||
"resolved": "https://registry.npmmirror.com/@dcloudio/uni-ui/-/uni-ui-1.5.0.tgz",
|
|
||||||
"integrity": "sha512-E7D37VbRZeh1E2yzrIie8psBckIrErdkUbUA751rlG8zdioGovW3zOuUsKgY+Gh7csMvi6XMEoSacvboe8o4Gw=="
|
|
||||||
},
|
|
||||||
"node_modules/@types/html5plus": {
|
|
||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
"resolved": "https://registry.npmmirror.com/@types/html5plus/-/html5plus-1.0.5.tgz",
|
"resolved": "https://registry.npmmirror.com/@types/html5plus/-/html5plus-1.0.5.tgz",
|
||||||
"integrity": "sha512-qt5z+3WYkARL/rWnJRcB2fCDOZLKa/hEOkse9sjA6FFkXZtKb+OPxKqo8bDgix4+ufahOff0adarVfaUaK1mfw==",
|
"integrity": "sha512-qt5z+3WYkARL/rWnJRcB2fCDOZLKa/hEOkse9sjA6FFkXZtKb+OPxKqo8bDgix4+ufahOff0adarVfaUaK1mfw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/uni-app": {
|
"@types/uni-app": {
|
||||||
"version": "1.4.8",
|
"version": "1.4.8",
|
||||||
"resolved": "https://registry.npmmirror.com/@types/uni-app/-/uni-app-1.4.8.tgz",
|
"resolved": "https://registry.npmmirror.com/@types/uni-app/-/uni-app-1.4.8.tgz",
|
||||||
"integrity": "sha512-plxwi9MvGDrekCsDKuNlCN3ZXIv9zkqHsKZJOsc8FQqLSHveDBOm11qOaswe4QyNWVHpvwZMViii/Ni1/d40LA==",
|
"integrity": "sha512-plxwi9MvGDrekCsDKuNlCN3ZXIv9zkqHsKZJOsc8FQqLSHveDBOm11qOaswe4QyNWVHpvwZMViii/Ni1/d40LA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"requires": {
|
||||||
"vue": "^2.6.8"
|
"vue": "^2.6.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/compiler-sfc": {
|
"@vue/compiler-sfc": {
|
||||||
"version": "2.7.16",
|
"version": "2.7.16",
|
||||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
|
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
|
||||||
"integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
|
"integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"requires": {
|
||||||
"@babel/parser": "^7.23.5",
|
"@babel/parser": "^7.23.5",
|
||||||
"postcss": "^8.4.14",
|
"postcss": "^8.4.14",
|
||||||
|
"prettier": "^1.18.2 || ^2.0.0",
|
||||||
"source-map": "^0.6.1"
|
"source-map": "^0.6.1"
|
||||||
},
|
|
||||||
"optionalDependencies": {
|
|
||||||
"prettier": "^1.18.2 || ^2.0.0"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/csstype": {
|
"csstype": {
|
||||||
"version": "3.1.3",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
|
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
|
||||||
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
|
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/moment": {
|
"moment": {
|
||||||
"version": "2.30.1",
|
"version": "2.30.1",
|
||||||
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
|
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
|
||||||
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
|
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
|
||||||
"engines": {
|
|
||||||
"node": "*"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"node_modules/nanoid": {
|
"nanoid": {
|
||||||
"version": "3.3.7",
|
"version": "3.3.7",
|
||||||
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
|
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
|
||||||
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
|
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
|
||||||
"dev": true,
|
"dev": true
|
||||||
"bin": {
|
|
||||||
"nanoid": "bin/nanoid.cjs"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"node_modules/picocolors": {
|
"picocolors": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
|
||||||
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
|
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"postcss": {
|
||||||
"version": "8.4.33",
|
"version": "8.4.35",
|
||||||
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.33.tgz",
|
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.35.tgz",
|
||||||
"integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==",
|
"integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"requires": {
|
||||||
"nanoid": "^3.3.7",
|
"nanoid": "^3.3.7",
|
||||||
"picocolors": "^1.0.0",
|
"picocolors": "^1.0.0",
|
||||||
"source-map-js": "^1.0.2"
|
"source-map-js": "^1.0.2"
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "^10 || ^12 || >=14"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prettier": {
|
"prettier": {
|
||||||
"version": "2.8.8",
|
"version": "2.8.8",
|
||||||
"resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz",
|
"resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz",
|
||||||
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
|
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true
|
||||||
"bin": {
|
|
||||||
"prettier": "bin-prettier.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10.13.0"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"node_modules/source-map": {
|
"source-map": {
|
||||||
"version": "0.6.1",
|
"version": "0.6.1",
|
||||||
"resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
|
"resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
|
||||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||||
"dev": true,
|
"dev": true
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"node_modules/source-map-js": {
|
"source-map-js": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
|
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
|
||||||
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
|
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
|
||||||
"dev": true,
|
"dev": true
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"node_modules/vue": {
|
"vue": {
|
||||||
"version": "2.7.16",
|
"version": "2.7.16",
|
||||||
"resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.16.tgz",
|
"resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.16.tgz",
|
||||||
"integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
|
"integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
|
||||||
"deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.",
|
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"requires": {
|
||||||
"@vue/compiler-sfc": "2.7.16",
|
"@vue/compiler-sfc": "2.7.16",
|
||||||
"csstype": "^3.1.0"
|
"csstype": "^3.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vue-aliplayer": {
|
"vue-aliplayer": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/vue-aliplayer/-/vue-aliplayer-1.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/vue-aliplayer/-/vue-aliplayer-1.0.0.tgz",
|
||||||
"integrity": "sha512-z29s38hlNJDckGSPtuTsYwMdjj70SsvJ5VzbEoBoV2BTrg3ucvodM2CW7BWstrG9WaQqz4F8nVGLSON05RrmJw==",
|
"integrity": "sha512-z29s38hlNJDckGSPtuTsYwMdjj70SsvJ5VzbEoBoV2BTrg3ucvodM2CW7BWstrG9WaQqz4F8nVGLSON05RrmJw==",
|
||||||
"dependencies": {
|
"requires": {
|
||||||
"vue-github-badge": "^1.0.0"
|
"vue-github-badge": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vue-github-badge": {
|
"vue-github-badge": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/vue-github-badge/-/vue-github-badge-1.0.1.tgz",
|
"resolved": "https://registry.npmmirror.com/vue-github-badge/-/vue-github-badge-1.0.1.tgz",
|
||||||
"integrity": "sha512-8X+FUWapnnDfs6cRUg3mCfHUf2r5arUfCSRdvbIn860oj9us3Rz3VOtioUgmfzh6EhaaYTs0Oh78EzJ+Z6uqAA=="
|
"integrity": "sha512-8X+FUWapnnDfs6cRUg3mCfHUf2r5arUfCSRdvbIn860oj9us3Rz3VOtioUgmfzh6EhaaYTs0Oh78EzJ+Z6uqAA=="
|
||||||
|
|
|
@ -35,9 +35,9 @@
|
||||||
<view class="dy-subtitle">
|
<view class="dy-subtitle">
|
||||||
<text>会议时间:{{i.MEETING_DATE_START}}</text>
|
<text>会议时间:{{i.MEETING_DATE_START}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="dy-subtitle">
|
<!-- <view class="dy-subtitle">-->
|
||||||
<text>会议状态:{{i.MEETING_STATUS}}</text>
|
<!-- <text>会议状态:{{i.MEETING_STATUS}}</text>-->
|
||||||
</view>
|
<!-- </view>-->
|
||||||
<!-- <view class="dy-subtitle">-->
|
<!-- <view class="dy-subtitle">-->
|
||||||
<!-- <text>会议内容:</text>-->
|
<!-- <text>会议内容:</text>-->
|
||||||
<!-- <rich-text :nodes="i.MEETING_CONTENT"></rich-text>-->
|
<!-- <rich-text :nodes="i.MEETING_CONTENT"></rich-text>-->
|
||||||
|
|
|
@ -40,48 +40,60 @@
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
<uni-drawer ref="showHiddenWindow" mode="right" :mask-click="true">
|
<uni-drawer ref="showHiddenWindow" mode="right" :mask-click="true">
|
||||||
<scroll-view scroll-y="true" style="height: 100vh;">
|
<scroll-view scroll-y="true" style="height: 100vh;">
|
||||||
<!-- 实时照片部分 -->
|
<view class="de-drawer">
|
||||||
<view class="cu-form-group image-upload-container">
|
<view class="cu-bar bg-white">
|
||||||
<view class="title">实时照片:</view>
|
<view class="action">实时照片</view>
|
||||||
<view class="icon-upload" v-if="!livePhotos.length" @click="chooseImage('LIVEPHOTOS')">
|
</view>
|
||||||
<text class='cuIcon-cameraadd'></text>
|
<view class="cu-form-group">
|
||||||
</view>
|
<view class="grid col-4 grid-square flex-sub">
|
||||||
<!-- 图片预览区 -->
|
<!-- 循环展示隐患图片,因为只允许一张,故使用v-if控制 -->
|
||||||
<view class="image-preview" v-for="(photo, index) in livePhotos" :key="index">
|
<view class="bg-img" v-if="liveImgs.length > 0" @tap="ViewImage"
|
||||||
<image :src="photo" mode="aspectFill" class="upload-image"></image>
|
:data-url="liveImgs[0].FILEPATH">
|
||||||
<!-- 删除按钮 -->
|
<image :src="liveImgs[0].IMGFILES_ID ? (baseImgPath + liveImgs[0].FILEPATH) : liveImgs[0].FILEPATH" mode="aspectFill"></image>
|
||||||
<view class="delete-icon" @tap.stop="removeImage(index, 'LIVEPHOTOS')">
|
<!-- 删除图片按钮 -->
|
||||||
<text class='cuIcon-close'></text>
|
<view class="cu-tag bg-red" @tap.stop="DelImg" data-type="0">
|
||||||
|
<text class='cuIcon-close'></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 上传图片按钮,仅当没有图片时显示 -->
|
||||||
|
<view class="solids" @tap="ChooseImage"
|
||||||
|
v-if="liveImgs.length === 0">
|
||||||
|
<text class='cuIcon-cameraadd'></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
<view class="cu-form-group" style="border: none;" v-if="!forbidEdit">
|
||||||
|
<view class="title">签字</view>
|
||||||
<!-- 签字照片部分 -->
|
<button class="cu-btn bg-green shadow" @tap="modalShow = true" data-target="Modal">手写签字</button>
|
||||||
<view class="cu-form-group image-upload-container">
|
|
||||||
<view class="title">签字照片:</view>
|
|
||||||
<view class="icon-upload" v-if="!signaturePicture" @click="chooseImage('SIGNATUREPICTURE')">
|
|
||||||
<text class='cuIcon-edit'></text>
|
|
||||||
</view>
|
</view>
|
||||||
<!-- 图片预览区 -->
|
<view class="cu-bar bg-white" v-show="signImgList && signImgList.length > 0">
|
||||||
<view class="image-preview" v-if="signaturePicture">
|
<view class="action">
|
||||||
<image :src="signaturePicture" mode="aspectFill" class="upload-image"></image>
|
签字照片
|
||||||
</view>
|
|
||||||
<!-- 删除按钮 -->
|
|
||||||
<view>
|
|
||||||
<view class="delete-icon" @tap.stop="removeImage('SIGNATUREPICTURE')">
|
|
||||||
<text class='cuIcon-close'></text>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
<view class="cu-form-group" v-show="signImgList && signImgList.length > 0">
|
||||||
|
<view class="grid col-4 grid-square flex-sub">
|
||||||
|
<view style="width: 60%;" class="bg-img" v-for="(item,index) in signImgList" :key="index" @tap="ViewImage" data-type="0" :data-url="signImgList[index].filePath">
|
||||||
|
<image :src="signImgList[index].filePath" mode="aspectFill"></image>
|
||||||
|
<view class="cu-tag bg-red" @tap.stop="delImg" data-type="0" :data-index="index">
|
||||||
|
<text class='cuIcon-close'></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="cu-modal" :class="{'show':modalShow}">
|
||||||
|
<sign @confirm="subCanvas" @cancel="modalShow = false"></sign>
|
||||||
|
</view>
|
||||||
|
<view class="cu-form-group" style="margin-top: 20px;">
|
||||||
|
<button class="cu-btn block bg-blue margin-tb-sm" @click="submitMeetingAttendance">确定</button>
|
||||||
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
<button @click="saveAndCloseDrawer">保存并关闭</button>
|
|
||||||
</uni-drawer>
|
</uni-drawer>
|
||||||
<view class="cu-form-group">
|
<view class="cu-form-group">
|
||||||
<view class="title">是否参会:</view>
|
<view class="title">是否参会:</view>
|
||||||
<button class="cu-btn round bg-blue" @click="addHidden">参会</button>
|
<button class="cu-btn round bg-blue" @click="addMeeting">参会</button>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<yk-authpup ref="authpup" type="top" @changeAuth="$noMultipleClicks(editLocation)" :permissionID="permissionID"></yk-authpup>
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -89,13 +101,18 @@
|
||||||
import {
|
import {
|
||||||
basePath,loginUser
|
basePath,loginUser
|
||||||
} from '@/common/tool.js';
|
} from '@/common/tool.js';
|
||||||
|
import sign from '@/components/sign/sign.vue';
|
||||||
import ykAuthpup from "@/components/yk-authpup/yk-authpup"
|
import ykAuthpup from "@/components/yk-authpup/yk-authpup"
|
||||||
|
import {baseImgPath} from "../../../common/tool";
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
sign,
|
||||||
ykAuthpup
|
ykAuthpup
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
baseImgPath: baseImgPath,
|
||||||
|
modalShow: false,
|
||||||
permissionID:'',
|
permissionID:'',
|
||||||
SAFETY_MEETING_ID : '',
|
SAFETY_MEETING_ID : '',
|
||||||
varList:[],
|
varList:[],
|
||||||
|
@ -110,8 +127,10 @@
|
||||||
RECORDER:"",
|
RECORDER:"",
|
||||||
MEETING_DATE_START:"",
|
MEETING_DATE_START:"",
|
||||||
MEETING_DATE_END:"",
|
MEETING_DATE_END:"",
|
||||||
livePhotos: [],
|
liveImgs: [],
|
||||||
signaturePicture: [],
|
signImgList: [],
|
||||||
|
LIVEPHOTOS: '',
|
||||||
|
SIGNATUREPICTURE: '',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad(e){
|
onLoad(e){
|
||||||
|
@ -141,7 +160,6 @@
|
||||||
},
|
},
|
||||||
data: {
|
data: {
|
||||||
SAFETY_MEETING_ID: _this.SAFETY_MEETING_ID,
|
SAFETY_MEETING_ID: _this.SAFETY_MEETING_ID,
|
||||||
CORPINFO_ID:loginUser.CORPINFO_ID,
|
|
||||||
USER_ID:loginUser.USER_ID,
|
USER_ID:loginUser.USER_ID,
|
||||||
},
|
},
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
|
@ -157,38 +175,116 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
ChooseImage() {
|
||||||
|
var _this = this;
|
||||||
|
uni.chooseImage({
|
||||||
|
count: 1,
|
||||||
|
sizeType: ['original', 'compressed'],
|
||||||
|
sourceType: ['camera'],
|
||||||
|
success: (res) => {
|
||||||
|
let img = {
|
||||||
|
IMGFILES_ID: '',
|
||||||
|
FILEPATH: res.tempFilePaths[0]
|
||||||
|
};
|
||||||
|
_this.liveImgs = [img];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
DelImg() {
|
||||||
|
var _this = this;
|
||||||
|
uni.showModal({
|
||||||
|
content: '确定要删除这张图片吗?',
|
||||||
|
cancelColor: "#000000",
|
||||||
|
cancelText: '取消',
|
||||||
|
confirmText: '确定',
|
||||||
|
success: res => {
|
||||||
|
if (res.confirm) {
|
||||||
|
_this.liveImgs = [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
subCanvas (e) {
|
||||||
|
this.signImgList.splice(0, this.signImgList.length);
|
||||||
|
this.signImgList.push(e);
|
||||||
|
this.SIGNATUREPICTURE = e.filePath;
|
||||||
|
this.modalShow = false;
|
||||||
|
},
|
||||||
|
delImg (e) {
|
||||||
|
var _this = this;
|
||||||
|
let i = e.currentTarget.dataset.index
|
||||||
|
uni.showModal({
|
||||||
|
content: '确定要删除这张图片吗?',
|
||||||
|
cancelColor: "#000000",
|
||||||
|
cancelText: '取消',
|
||||||
|
confirmText: '确定',
|
||||||
|
success: res => {
|
||||||
|
if (res.confirm) {
|
||||||
|
_this.signImgList.splice(i, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
submitMeetingAttendance() {
|
||||||
|
if (this.liveImgs.length === 0 || this.signImgList.length === 0) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '请上传实时照片和签字图片',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
addHidden() {
|
const livePhotoPath = this.liveImgs[0].FILEPATH;
|
||||||
|
const signPhotoPath = this.signImgList[0].filePath;
|
||||||
|
const params = {
|
||||||
|
SAFETY_MEETING_ID: this.SAFETY_MEETING_ID,
|
||||||
|
LIVEPHOTOS: livePhotoPath,
|
||||||
|
SIGNATUREPICTURE: signPhotoPath,
|
||||||
|
ATTENDANCE_STATUS: '1'
|
||||||
|
};
|
||||||
|
uni.showLoading({
|
||||||
|
title: '提交中...'
|
||||||
|
});
|
||||||
|
uni.request({
|
||||||
|
url: basePath + '/app/safetymeeting/edit',
|
||||||
|
method: 'POST',
|
||||||
|
header: {
|
||||||
|
'Content-type':'application/x-www-form-urlencoded'
|
||||||
|
},
|
||||||
|
data: params,
|
||||||
|
success: (res) => {
|
||||||
|
uni.hideLoading();
|
||||||
|
if (res.data.result === 'success') {
|
||||||
|
uni.showToast({
|
||||||
|
title: '提交成功',
|
||||||
|
icon: 'success'
|
||||||
|
});
|
||||||
|
this.$refs.showHiddenWindow.close();
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: '提交失败',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
addMeeting() {
|
||||||
if (this.$refs.showHiddenWindow) {
|
if (this.$refs.showHiddenWindow) {
|
||||||
|
// 清空实时照片和签字图片数组
|
||||||
|
this.liveImgs = [];
|
||||||
|
this.signImgList = [];
|
||||||
this.$refs.showHiddenWindow.open();
|
this.$refs.showHiddenWindow.open();
|
||||||
}
|
}
|
||||||
this.creatorList = [{
|
this.creatorList = [{
|
||||||
NAME: loginUser.NAME,
|
NAME: loginUser.NAME,
|
||||||
USER_ID: loginUser.USER_ID
|
USER_ID: loginUser.USER_ID
|
||||||
}]
|
}]
|
||||||
|
// 重新打开抽屉(drawer)时,上面的代码会重置照片和签字
|
||||||
this.$refs['showHiddenWindow'].open()
|
this.$refs['showHiddenWindow'].open()
|
||||||
this.showHiddenWindow = true
|
this.showHiddenWindow = true
|
||||||
this.hiddenIsEdit = true
|
this.hiddenIsEdit = true
|
||||||
},
|
},
|
||||||
chooseImage(type) {
|
|
||||||
uni.chooseImage({
|
|
||||||
count: 1, // 限制只能选择一张图片
|
|
||||||
success: (res) => {
|
|
||||||
if (type === 'LIVEPHOTOS' && res.tempFilePaths.length) {
|
|
||||||
this.livePhotos = res.tempFilePaths[0]; // 如果是单图,确保赋值字符串
|
|
||||||
} else if (type === 'SIGNATUREPICTURE' && res.tempFilePaths.length) {
|
|
||||||
this.signaturePicture = res.tempFilePaths[0]; // 确保赋值为字符串路径
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
},
|
|
||||||
removeImage(type) {
|
|
||||||
if (type === 'LIVEPHOTOS') {
|
|
||||||
this.livePhotos = []; // 清空数组即可移除图片
|
|
||||||
} else {
|
|
||||||
this.signaturePicture = null; // 设为null即可移除图片
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
openAuth(permissionID){
|
openAuth(permissionID){
|
||||||
this.permissionID = permissionID;
|
this.permissionID = permissionID;
|
||||||
|
@ -247,38 +343,6 @@
|
||||||
display: inline-block; /* 如果需要显示为inline-block */
|
display: inline-block; /* 如果需要显示为inline-block */
|
||||||
}
|
}
|
||||||
|
|
||||||
.image-upload-container {
|
|
||||||
position: relative;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.upload-image {
|
|
||||||
width: 100%; /* 宽度占满容器,根据需要调整 */
|
|
||||||
height: auto; /* 高度自适应 */
|
|
||||||
border-radius: 4px; /* 轻微圆角 */
|
|
||||||
}
|
|
||||||
|
|
||||||
.image-preview {
|
|
||||||
position: relative;
|
|
||||||
width: 90px; /* 根据需要调整 */
|
|
||||||
height: 90px; /* 根据需要调整 */
|
|
||||||
margin-right: 10px; /* 与下一张图片的间距 */
|
|
||||||
display: inline-block; /* 使图片并排显示 */
|
|
||||||
}
|
|
||||||
|
|
||||||
.delete-icon {
|
|
||||||
position: absolute;
|
|
||||||
top: -10px; /* 超出图片范围的一部分,根据需要调整 */
|
|
||||||
right: -10px; /* 超出图片范围的一部分,根据需要调整 */
|
|
||||||
background-color: #ff4949; /* 您的红色背景 */
|
|
||||||
width: 20px; /* 删除图标的大小,根据实际情况调整 */
|
|
||||||
height: 20px;
|
|
||||||
border-radius: 10px; /* 圆形 */
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.delete-icon text {
|
.delete-icon text {
|
||||||
color: white; /* 图标颜色为白色 */
|
color: white; /* 图标颜色为白色 */
|
||||||
font-size: 14px; /* 图标大小,根据需要调整 */
|
font-size: 14px; /* 图标大小,根据需要调整 */
|
||||||
|
|
Loading…
Reference in New Issue