|
@@ -0,0 +1,660 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <view class="container">
|
|
|
|
|
+ <uni-forms ref="form" :rules="rules" :model="form" labelWidth="80px" :label-position="alignment">
|
|
|
|
|
+ <uni-forms-item label="入职人" required name="entryName">
|
|
|
|
|
+ <uni-easyinput v-model="form.entryName" placeholder="请输入"/>
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ <uni-forms-item label="部门" required name="deptId">
|
|
|
|
|
+ <uni-data-select v-model="form.deptId" :localdata="deptOptions">
|
|
|
|
|
+ </uni-data-select>
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ <uni-forms-item label="职位" required name="postId">
|
|
|
|
|
+ <uni-data-select v-model="form.postId" :localdata="postOptions">
|
|
|
|
|
+ </uni-data-select>
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ <uni-forms-item label="员工类型" required name="employeeType">
|
|
|
|
|
+ <uni-data-select v-model="form.employeeType" :localdata="employeeTypeListOpen">
|
|
|
|
|
+ </uni-data-select>
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ <uni-forms-item label="性别" required name="gender">
|
|
|
|
|
+ <uni-data-select v-model="form.gender" :localdata="userSexList">
|
|
|
|
|
+ </uni-data-select>
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ <uni-forms-item label="出生日期" required name="birthday">
|
|
|
|
|
+ <uni-datetime-picker type="date" v-model="form.birthday"/>
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+
|
|
|
|
|
+ <uni-forms-item label="联系电话" required name="contactNumber">
|
|
|
|
|
+ <uni-easyinput v-model="form.contactNumber" placeholder="请输入"/>
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ <uni-forms-item label="电子邮箱" required name="email">
|
|
|
|
|
+ <uni-easyinput v-model="form.email" placeholder="请输入"/>
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ <uni-forms-item label="教育背景">
|
|
|
|
|
+ <uni-easyinput maxlength="50" type="textarea" v-model="form.education" placeholder="请输入" />
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ <uni-forms-item label="工作经验">
|
|
|
|
|
+ <uni-easyinput maxlength="200" type="textarea" v-model="form.workExperience" placeholder="请输入" />
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ <uni-forms-item label="入职日期" required name="entryDate">
|
|
|
|
|
+ <uni-datetime-picker type="date" v-model="form.entryDate"/>
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ <uni-forms-item label="附件">
|
|
|
|
|
+ <view class="upload-wrap">
|
|
|
|
|
+ <button type="primary" size="mini" @click="handleUploadClick">点击上传</button>
|
|
|
|
|
+ <xe-upload ref="XeUpload" :options="uploadOptions" @callback="handleUploadCallback"></xe-upload>
|
|
|
|
|
+ <view class="mgb-16 file-wrap" v-for="(item, index) in fileList" :key="index">
|
|
|
|
|
+ <view class="btn-click file-line" @click="handlePreview(item)">
|
|
|
|
|
+ <view class="file-info">
|
|
|
|
|
+ <image :src="icons.file" mode="aspectFill" class="file-icon" />
|
|
|
|
|
+ <text class="file-name">{{ item.name || title[type] }}</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <image :src="icons.close" mode="aspectFill" class="file-icon"
|
|
|
|
|
+ @click.stop="handleDeleteFile(index)" />
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ <uni-forms-item label="备注">
|
|
|
|
|
+ <uni-easyinput maxlength="200" type="textarea" v-model="form.remarks" placeholder="请输入备注" />
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ <uni-forms-item label="审批人" required name="peopleList">
|
|
|
|
|
+ <uni-easyinput v-model="form.peopleList" style="display: none;" />
|
|
|
|
|
+ <view style="display: flex;justify-content: flex-start;align-items: center;">
|
|
|
|
|
+ <uni-icons type="folder-add" size="40" @click="gotochooseUser"></uni-icons>
|
|
|
|
|
+ <view style="display: flex;justify-content: flex-start;align-items: center;"
|
|
|
|
|
+ v-for="(tag, index) in nikeNamelist" :key="index">
|
|
|
|
|
+ <uni-icons type="right" size="20"></uni-icons>
|
|
|
|
|
+ <view style="display: flex;flex-direction: column;justify-content: center;align-items: center;"
|
|
|
|
|
+ @click="handleClose(index)">
|
|
|
|
|
+ <span class="user-avatar">{{ tag.substring(0, 1) || 'U' }}</span>
|
|
|
|
|
+ <text style="font-size: 12px;">{{tag}}</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ <uni-forms-item label="流程动态" v-if="tasks.length > 0">
|
|
|
|
|
+ <uni-steps active-icon="medal" :options="tasks" active-color="#007AFF" :active="tasks.length"
|
|
|
|
|
+ direction="column" />
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ </uni-forms>
|
|
|
|
|
+ <view class="button-group" v-if="name == '0'">
|
|
|
|
|
+ <button type="default" size="mini" @click="onReCommit('form')">提交</button>
|
|
|
|
|
+ <button type="primary" size="mini" @click="onClose()">关闭</button>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="button-group" v-else>
|
|
|
|
|
+ <button type="primary" size="mini" @click="submit('form')">提交</button>
|
|
|
|
|
+ <button type="default" size="mini" @click="onSave()">暂存</button>
|
|
|
|
|
+ <button type="danger" size="mini" @click="onDelete()" v-if="form.auditStatus == 0">删除</button>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ <view>
|
|
|
|
|
+ <!-- 普通弹窗 -->
|
|
|
|
|
+ <uni-popup ref="popup" background-color="#fff" border-radius="10px 10px 0 0">
|
|
|
|
|
+ <view class="popup-body">
|
|
|
|
|
+ <view class="popup-close">
|
|
|
|
|
+ <uni-icons type="closeempty" size="20" @click="popupClose"></uni-icons>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="popup-content">
|
|
|
|
|
+ <pople-Select @submit="submitPeople" ref="popleSelect"></pople-Select>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ </uni-popup>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+</template>
|
|
|
|
|
+
|
|
|
|
|
+<script>
|
|
|
|
|
+ import {
|
|
|
|
|
+ getDetail,
|
|
|
|
|
+ create,
|
|
|
|
|
+ save,
|
|
|
|
|
+ deleteById,
|
|
|
|
|
+ closeById,
|
|
|
|
|
+ reCommit
|
|
|
|
|
+ } from "@/api/oa/entry.js"
|
|
|
|
|
+ import {getDicts,getOpenDicts,listSimplePosts,listSimpleDepts } from "@/api/system/dict.js";
|
|
|
|
|
+ import {
|
|
|
|
|
+ uploadFile
|
|
|
|
|
+ } from "@/api/system/user"
|
|
|
|
|
+ import popleSelect from '../../popleSelect/choose.vue'
|
|
|
|
|
+ export default {
|
|
|
|
|
+ components: {
|
|
|
|
|
+ popleSelect
|
|
|
|
|
+ },
|
|
|
|
|
+ props: {
|
|
|
|
|
+ id: {
|
|
|
|
|
+ type: [String, Number],
|
|
|
|
|
+ default: undefined
|
|
|
|
|
+ },
|
|
|
|
|
+ name: {
|
|
|
|
|
+ type: String,
|
|
|
|
|
+ default: undefined
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ data() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ deptOptions:[],
|
|
|
|
|
+ postOptions:[],
|
|
|
|
|
+ employeeTypeListOpen:[],
|
|
|
|
|
+ userSexList:[],
|
|
|
|
|
+ tasks: [],
|
|
|
|
|
+ userInfo: uni.getStorageSync('userInfo'),
|
|
|
|
|
+ alignment: 'top',
|
|
|
|
|
+ uploadOptions: {},
|
|
|
|
|
+ fileList: [],
|
|
|
|
|
+ icons: {
|
|
|
|
|
+ close: '/static/icon_close.png',
|
|
|
|
|
+ file: '/static/icon_file.png',
|
|
|
|
|
+ },
|
|
|
|
|
+ nikeNamelist: [],
|
|
|
|
|
+ // 表单数据
|
|
|
|
|
+ form: {
|
|
|
|
|
+ entryName: undefined,
|
|
|
|
|
+ deptId: undefined,
|
|
|
|
|
+ postId: undefined,
|
|
|
|
|
+ employeeType: undefined,
|
|
|
|
|
+ gender: undefined,
|
|
|
|
|
+ birthday: undefined,
|
|
|
|
|
+ contactNumber: undefined,
|
|
|
|
|
+ email: undefined,
|
|
|
|
|
+ education: undefined,
|
|
|
|
|
+ workExperience: undefined,
|
|
|
|
|
+ entryDate: undefined,
|
|
|
|
|
+ fileIdList: undefined,
|
|
|
|
|
+ remarks: undefined,
|
|
|
|
|
+ peopleList: '',
|
|
|
|
|
+ },
|
|
|
|
|
+ // 校验规则
|
|
|
|
|
+ rules: {
|
|
|
|
|
+ entryName: {
|
|
|
|
|
+ rules: [{
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ errorMessage: '请输入'
|
|
|
|
|
+ }, ]
|
|
|
|
|
+ },
|
|
|
|
|
+ deptId: {
|
|
|
|
|
+ rules: [{
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ errorMessage: '请选择'
|
|
|
|
|
+ }, ]
|
|
|
|
|
+ },
|
|
|
|
|
+ postId: {
|
|
|
|
|
+ rules: [{
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ errorMessage: '请选择'
|
|
|
|
|
+ }, ]
|
|
|
|
|
+ },
|
|
|
|
|
+ employeeType: {
|
|
|
|
|
+ rules: [{
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ errorMessage: '请选择'
|
|
|
|
|
+ }, ]
|
|
|
|
|
+ },
|
|
|
|
|
+ gender: {
|
|
|
|
|
+ rules: [{
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ errorMessage: '请选择'
|
|
|
|
|
+ }, ]
|
|
|
|
|
+ },
|
|
|
|
|
+ birthday: {
|
|
|
|
|
+ rules: [{
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ errorMessage: '请选择'
|
|
|
|
|
+ }, ]
|
|
|
|
|
+ },
|
|
|
|
|
+ contactNumber: {
|
|
|
|
|
+ rules: [{
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ errorMessage: '请输入'
|
|
|
|
|
+ }, ]
|
|
|
|
|
+ },
|
|
|
|
|
+ email: {
|
|
|
|
|
+ rules: [{
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ errorMessage: '请输入'
|
|
|
|
|
+ }, ]
|
|
|
|
|
+ },
|
|
|
|
|
+ entryDate: {
|
|
|
|
|
+ rules: [{
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ errorMessage: '请选择'
|
|
|
|
|
+ }, ]
|
|
|
|
|
+ },
|
|
|
|
|
+ peopleList: {
|
|
|
|
|
+ rules: [{
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ errorMessage: '请选择审批人'
|
|
|
|
|
+ }, ]
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ watch: {
|
|
|
|
|
+ id: {
|
|
|
|
|
+ immediate: true,
|
|
|
|
|
+ handler(val) {
|
|
|
|
|
+ this.getInfoDataList();
|
|
|
|
|
+ if (val) {
|
|
|
|
|
+ this.getDetail(val);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ maskClick(e) {
|
|
|
|
|
+ console.log('----maskClick事件:', e);
|
|
|
|
|
+ },
|
|
|
|
|
+ /** 查询部门列表 */
|
|
|
|
|
+ getInfoDataList() {
|
|
|
|
|
+ listSimpleDepts().then(response => {
|
|
|
|
|
+ response.data.forEach(v => {
|
|
|
|
|
+ this.deptOptions.push({
|
|
|
|
|
+ text: v.name,
|
|
|
|
|
+ value: v.id,
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+ });
|
|
|
|
|
+ getDicts('system_user_sex').then(response => {
|
|
|
|
|
+ response.data.forEach(v => {
|
|
|
|
|
+ this.userSexList.push({
|
|
|
|
|
+ text: v.label,
|
|
|
|
|
+ value: v.value,
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+ });
|
|
|
|
|
+ getOpenDicts('tenant_employee_type').then(response => {
|
|
|
|
|
+ response.data.forEach(v => {
|
|
|
|
|
+ this.employeeTypeListOpen.push({
|
|
|
|
|
+ text: v.label,
|
|
|
|
|
+ value: v.value,
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+ });
|
|
|
|
|
+ listSimplePosts().then(response => {
|
|
|
|
|
+ response.data.forEach(v => {
|
|
|
|
|
+ this.postOptions.push({
|
|
|
|
|
+ text: v.name,
|
|
|
|
|
+ value: v.id,
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ /** 获得详情信息 */
|
|
|
|
|
+ getDetail(val) {
|
|
|
|
|
+ getDetail(val).then(response => {
|
|
|
|
|
+ this.form = response.data;
|
|
|
|
|
+ console.log(this.form);
|
|
|
|
|
+ this.fileList = response.data.fileList ? response.data.fileList : [];
|
|
|
|
|
+ let auditUserList = response.data.auditUserList;
|
|
|
|
|
+ if (auditUserList) {
|
|
|
|
|
+ let peopleList = [];
|
|
|
|
|
+ let nikeNamelist = [];
|
|
|
|
|
+ auditUserList.map(item => {
|
|
|
|
|
+ peopleList.push(item.id);
|
|
|
|
|
+ nikeNamelist.push(item.nickname)
|
|
|
|
|
+ });
|
|
|
|
|
+ this.$set(this.form, 'peopleList', peopleList.join(','));
|
|
|
|
|
+ this.nikeNamelist = nikeNamelist;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.$set(this.form, 'peopleList', '');
|
|
|
|
|
+ this.nikeNamelist = [];
|
|
|
|
|
+ }
|
|
|
|
|
+ let auditRecordList = response.data.auditRecordList;
|
|
|
|
|
+ if (auditRecordList) {
|
|
|
|
|
+ let tasks = [];
|
|
|
|
|
+ auditRecordList.forEach(v => {
|
|
|
|
|
+ tasks.push({
|
|
|
|
|
+ title: '任务:' + v.assigneeUser.nickname + v.name,
|
|
|
|
|
+ desc: this.parseTime(v.endTime),
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+ this.tasks = tasks;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ // 关闭标签
|
|
|
|
|
+ handleClose(index) {
|
|
|
|
|
+ this.nikeNamelist.splice(index, 1);
|
|
|
|
|
+ let peopleList = this.form.peopleList.split(',');
|
|
|
|
|
+ peopleList.splice(index, 1);
|
|
|
|
|
+ this.form.peopleList = peopleList.join(',');
|
|
|
|
|
+ },
|
|
|
|
|
+ submitPeople(userList, nikeNamelist, userIdList) {
|
|
|
|
|
+ console.log(userList);
|
|
|
|
|
+ console.log(userIdList);
|
|
|
|
|
+ this.nikeNamelist = nikeNamelist;
|
|
|
|
|
+ this.form.peopleList = userIdList.join(',');
|
|
|
|
|
+ this.$refs.popup.close();
|
|
|
|
|
+ },
|
|
|
|
|
+ popupClose() {
|
|
|
|
|
+ this.$refs.popup.close();
|
|
|
|
|
+ },
|
|
|
|
|
+ gotochooseUser() {
|
|
|
|
|
+ this.$refs.popup.open('bottom');
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.$refs.popleSelect.getInfoData();
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ handleUploadClick() {
|
|
|
|
|
+ this.$refs.XeUpload.upload('file');
|
|
|
|
|
+ },
|
|
|
|
|
+ handleUploadCallback(e) {
|
|
|
|
|
+ console.log('UploadCallback', e);
|
|
|
|
|
+ let data = {
|
|
|
|
|
+ filePath: e.data[0].tempFilePath
|
|
|
|
|
+ }
|
|
|
|
|
+ uploadFile(data).then(response => {
|
|
|
|
|
+ const tmpFiles = ([response.data] || []).map(({
|
|
|
|
|
+ id,
|
|
|
|
|
+ url,
|
|
|
|
|
+ name,
|
|
|
|
|
+ type
|
|
|
|
|
+ }) => {
|
|
|
|
|
+ return {
|
|
|
|
|
+ id,
|
|
|
|
|
+ url,
|
|
|
|
|
+ name,
|
|
|
|
|
+ type,
|
|
|
|
|
+ };
|
|
|
|
|
+ });
|
|
|
|
|
+ this.fileList.push(...tmpFiles);
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ // 预览
|
|
|
|
|
+ handlePreview(val) {
|
|
|
|
|
+ console.log('PreviewFile', val);
|
|
|
|
|
+ const fileType = this.getFileType(val.name);
|
|
|
|
|
+ if (fileType === 'image') {
|
|
|
|
|
+ uni.previewImage({
|
|
|
|
|
+ current: 0,
|
|
|
|
|
+ urls: [val.url],
|
|
|
|
|
+ });
|
|
|
|
|
+ } else if (fileType === 'office') {
|
|
|
|
|
+ return uni.downloadFile({
|
|
|
|
|
+ url: val.url,
|
|
|
|
|
+ success: function(res) {
|
|
|
|
|
+ let filePath = res.filePath || res.tempFilePath;
|
|
|
|
|
+ uni.openDocument({
|
|
|
|
|
+ filePath: filePath,
|
|
|
|
|
+ showMenu: true,
|
|
|
|
|
+ success: function(res) {
|
|
|
|
|
+ console.log('打开文档成功');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ uni.showModal({
|
|
|
|
|
+ title: '该类型文件无法预览',
|
|
|
|
|
+ content: val.name,
|
|
|
|
|
+ showCancel: false,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+ handleDeleteFile(index) {
|
|
|
|
|
+ this.fileList.splice(index, 1);
|
|
|
|
|
+ },
|
|
|
|
|
+ submit(ref) {
|
|
|
|
|
+ this.$refs[ref].validate().then(res => {
|
|
|
|
|
+ this.form.startUserSelectAssignees = this.form.peopleList.split(',');
|
|
|
|
|
+ this.form.auditPass = true;
|
|
|
|
|
+ create(this.form).then(response => {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: `提交成功`
|
|
|
|
|
+ })
|
|
|
|
|
+ if(this.id){
|
|
|
|
|
+ this.$emit('popupClose');
|
|
|
|
|
+ }else{
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.$router.go(0)
|
|
|
|
|
+ }, 500)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }).catch(() => {
|
|
|
|
|
+
|
|
|
|
|
+ });
|
|
|
|
|
+ }).catch(err => {
|
|
|
|
|
+ console.log('err', err);
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ //暂存
|
|
|
|
|
+ onSave() {
|
|
|
|
|
+ if (this.form.peopleList) {
|
|
|
|
|
+ this.form.startUserSelectAssignees = this.form.peopleList.split(',');
|
|
|
|
|
+ }
|
|
|
|
|
+ this.form.auditPass = false;
|
|
|
|
|
+ save(this.form).then(response => {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: `暂存成功`
|
|
|
|
|
+ })
|
|
|
|
|
+ if(this.id){
|
|
|
|
|
+ this.$emit('popupClose');
|
|
|
|
|
+ }else{
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.$router.go(0)
|
|
|
|
|
+ }, 500)
|
|
|
|
|
+ }
|
|
|
|
|
+ }).catch(() => {
|
|
|
|
|
+
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ //驳回或撤回后再次提交
|
|
|
|
|
+ onReCommit(ref) {
|
|
|
|
|
+ this.$refs[ref].validate().then(res => {
|
|
|
|
|
+ this.form.startUserSelectAssignees = this.form.peopleList.split(',');
|
|
|
|
|
+ this.form.auditPass = true;
|
|
|
|
|
+ reCommit(this.form).then(response => {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: `提交成功`
|
|
|
|
|
+ })
|
|
|
|
|
+ this.$emit('popupClose');
|
|
|
|
|
+ }).catch(() => {
|
|
|
|
|
+
|
|
|
|
|
+ });
|
|
|
|
|
+ }).catch(err => {
|
|
|
|
|
+ console.log('err', err);
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ //暂存删除
|
|
|
|
|
+ async onDelete() {
|
|
|
|
|
+ let that = this;
|
|
|
|
|
+ uni.showModal({
|
|
|
|
|
+ title: '提示',
|
|
|
|
|
+ content: '是否确认删除?',
|
|
|
|
|
+ success: function(res) {
|
|
|
|
|
+ if (res.confirm) {
|
|
|
|
|
+ console.log('用户点击确定');
|
|
|
|
|
+ deleteById(that.id).then(response => {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: "删除成功!"
|
|
|
|
|
+ })
|
|
|
|
|
+ that.$emit('popupClose');
|
|
|
|
|
+ })
|
|
|
|
|
+ } else if (res.cancel) {
|
|
|
|
|
+ console.log('用户点击取消');
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ //暂存关闭
|
|
|
|
|
+ async onClose() {
|
|
|
|
|
+ let that = this;
|
|
|
|
|
+ uni.showModal({
|
|
|
|
|
+ title: '提示',
|
|
|
|
|
+ content: '是否确认关闭?',
|
|
|
|
|
+ success: function(res) {
|
|
|
|
|
+ if (res.confirm) {
|
|
|
|
|
+ console.log('用户点击确定');
|
|
|
|
|
+ closeById(that.id).then(response => {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: "流程已关闭!"
|
|
|
|
|
+ })
|
|
|
|
|
+ that.$emit('popupClose');
|
|
|
|
|
+ })
|
|
|
|
|
+ } else if (res.cancel) {
|
|
|
|
|
+ console.log('用户点击取消');
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+</script>
|
|
|
|
|
+
|
|
|
|
|
+<style lang="scss">
|
|
|
|
|
+ .container {
|
|
|
|
|
+ padding: 15px;
|
|
|
|
|
+ background-color: #fff;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .segmented-control {
|
|
|
|
|
+ margin-bottom: 15px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .button-group {
|
|
|
|
|
+ margin-top: 15px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .form-item {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .button {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ height: 35px;
|
|
|
|
|
+ line-height: 35px;
|
|
|
|
|
+ margin-left: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+</style>
|
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
|
+ .user-avatar {
|
|
|
|
|
+ width: 22px;
|
|
|
|
|
+ height: 22px;
|
|
|
|
|
+ line-height: 19px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ background: #46c26f;
|
|
|
|
|
+ border: 1px solid transparent;
|
|
|
|
|
+ border-radius: 5px;
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ line-height: 22px;
|
|
|
|
|
+ margin-bottom: 2px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .popup-body {
|
|
|
|
|
+ z-index: 99;
|
|
|
|
|
+ margin-bottom: 30px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .popup-close {
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ height: 40px;
|
|
|
|
|
+ line-height: 40px;
|
|
|
|
|
+ padding-left: 10px;
|
|
|
|
|
+ border-bottom: 1px solid #eaecef;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .popup-content {
|
|
|
|
|
+ height: 450px;
|
|
|
|
|
+ overflow-x: auto;
|
|
|
|
|
+ margin: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .btn-click {
|
|
|
|
|
+ transition: all 0.3s;
|
|
|
|
|
+ opacity: 1;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .btn-click:active {
|
|
|
|
|
+ opacity: 0.5;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .mgb-16 {
|
|
|
|
|
+ margin-bottom: 16rpx;
|
|
|
|
|
+
|
|
|
|
|
+ &:last-child {
|
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .upload-wrap {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ border-radius: 16rpx;
|
|
|
|
|
+ background: white;
|
|
|
|
|
+ // padding: 32rpx;
|
|
|
|
|
+
|
|
|
|
|
+ .upload-btn {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 176rpx;
|
|
|
|
|
+ border: 2rpx dashed #AAAAAA;
|
|
|
|
|
+ background: #FAFAFA;
|
|
|
|
|
+ border-radius: 16rpx;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+
|
|
|
|
|
+ .upload-icon {
|
|
|
|
|
+ width: 48rpx;
|
|
|
|
|
+ height: 48rpx;
|
|
|
|
|
+ margin-bottom: 8rpx;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .upload-text {
|
|
|
|
|
+ font-size: 26rpx;
|
|
|
|
|
+ color: #9E9E9E;
|
|
|
|
|
+ line-height: 40rpx;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .file-wrap {
|
|
|
|
|
+ .file-line {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ background: #F5F5F5;
|
|
|
|
|
+ border-radius: 8rpx;
|
|
|
|
|
+ padding: 16rpx;
|
|
|
|
|
+ font-size: 26rpx;
|
|
|
|
|
+ color: #1A1A1A;
|
|
|
|
|
+ line-height: 40rpx;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+
|
|
|
|
|
+ .file-info {
|
|
|
|
|
+ width: 90%;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+
|
|
|
|
|
+ .file-name {
|
|
|
|
|
+ max-width: 80%;
|
|
|
|
|
+ padding-left: 16rpx;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .file-icon {
|
|
|
|
|
+ width: 40rpx;
|
|
|
|
|
+ height: 40rpx;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .file-empty {
|
|
|
|
|
+ color: #999999;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+</style>
|