Selaa lähdekoodia

添加签名上传、列表超链接和流程更新

LuChongMei 1 vuosi sitten
vanhempi
commit
ae39f31dab

+ 14 - 0
jp-console/jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/UserController.java

@@ -107,6 +107,20 @@ public class UserController {
         List <UserDTO> result = userService.findOfficeList ( queryWrapper );
         return ResponseEntity.ok ( result );
     }
+    /**
+     * 根据角色获取领导用户列表
+     *
+     * @param roleId
+     * @return
+     */
+    @ApiLog("根据角色获取领导用户列表")
+    @ApiOperation(value = "根据角色获取领导用户列表")
+    @GetMapping("leaderList")
+    public ResponseEntity leaderList(String roleId) throws Exception {
+
+        List <UserDTO> result = userService.findUserListByRole ( roleId );
+        return ResponseEntity.ok ( result );
+    }
     /**
      * 保存用户
      *

+ 2 - 1
jp-console/jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

@@ -68,7 +68,8 @@
     	c.parent_ids AS "companyDTO.parentIds",
     	o.name AS "officeDTO.name",
     	o.parent_id AS "officeDTO.parent.id",
-    	o.parent_ids AS "officeDTO.parentIds"
+    	o.parent_ids AS "officeDTO.parentIds",
+        o.type AS "officeDTO.type"
     </sql>
 
     <sql id="userJoins">

+ 15 - 1
jp-console/jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -221,7 +221,21 @@ public class UserService extends ServiceImpl <UserMapper, User> {
     }
 
     public List<UserDTO> findOfficeList(QueryWrapper<UserDTO> queryWrapper) {
-        queryWrapper.like("o.parent_ids","1771063850830143489");
+        queryWrapper.eq("o.type","3");
         return baseMapper.findOfficeList(queryWrapper);
     }
+
+    public List<UserDTO> findUserListByRole(String roleId) {
+        QueryWrapper queryWrapper = new QueryWrapper ( );
+        UserDTO user = UserUtils.getCurrentUserDTO();
+        if ( user.getTenantDTO ( ) != null && StrUtil.isNotBlank ( user.getTenantDTO ( ).getId ( ) ) ) {
+            queryWrapper.eq ( "a.tenant_id", user.getTenantDTO ( ).getId ( ) );
+        }
+        queryWrapper.eq ( "a.del_flag", CommonConstants.NOT_DELETED ); //排除已经删除
+        queryWrapper.eq ( "r.id", roleId );
+
+        Page <UserDTO> page = new Page <> ( );
+        page.setSize ( -1 );
+        return baseMapper.findListByRole ( page, queryWrapper ).getRecords ( );
+    }
 }

+ 6 - 0
jp-mobile/api/circulation/gwCirculationCard2.js

@@ -24,6 +24,12 @@ export default {
 			params: { id: id },
 		});
 	},
+	getCardNum: function (id) {
+		return request({
+			url: "/circulation2/gwCirculationCard2/getCardNum",
+			method: "get",
+		});
+	},
 
 	list: function (params) {
 		return request({

+ 7 - 0
jp-mobile/api/sys/userService.js

@@ -63,4 +63,11 @@ export default {
 			params: params,
 		});
 	},
+	leaderList: function (role) {
+		return request({
+			url: "/sys/user/leaderList",
+			method: "get",
+			params: { roleId: role},
+		});
+	},
 }

+ 3 - 2
jp-mobile/components/office-user-select/office-user-select.vue

@@ -94,8 +94,10 @@
 		},
 		mounted() {
 			officeService.treeData({
-				parentId: "1771063850830143489"
+				parentId:"1770354728635834369"
 			}).then((data) => {
+				
+				data = data.filter(item => item.type == '3')
 				this.tab1 = data
 				this.index1 = data[0].id
 				userService.officeList().then(res => {
@@ -114,7 +116,6 @@
 				this.show = true;
 
 				if (this.value) {
-					console.log("user=======",this.value);
 					let u = this.value.split(",")
 					this.$nextTick(() => {
 						for (let i = 0; i < this.userList.length; i++) {

+ 8 - 2
jp-mobile/pages.json

@@ -34,7 +34,7 @@
 		{
 		    "path" : "pages/fileTransmit/fileTransmitList",
 		    "style" : {
-				"navigationBarTitleText": "文件传阅卡"
+				"navigationBarTitleText": "列表"
 			}
 		},
 		{
@@ -48,6 +48,12 @@
 			"style": {
 				"navigationBarTitleText": "修改密码"
 			}
+		},
+		{
+			"path": "pages/user/setting/signature/signature",
+			"style": {
+				"navigationBarTitleText": "签名"
+			}
 		}
         ,{
             "path" : "pages/apps/notification/notification",
@@ -613,7 +619,7 @@
 			},
 		"navigationBarBackgroundColor": "#36a7f3",
 		"navigationBarTitleText": "公文流转",
-		// "navigationStyle": "custom",
+		"navigationStyle": "custom",
 		"navigationBarTextStyle": "white"
 	},
 	"usingComponts": true,

+ 120 - 19
jp-mobile/pages/fileTransmit/addFileTransmit.vue

@@ -3,11 +3,11 @@
 		<view class="bg-white default_title">
 			<u--form :model="inputForm" labelWidth="130px" class="u-form default_title" labelPosition="left"
 				ref="inputForm">
-				<u-form-item label="年度" borderBottom prop="yearNum">
-					<u--input v-model="inputForm.yearNum" placeholder="输入年度" border="none"></u--input>
+				<u-form-item label="年度"  borderBottom prop="yearNum">
+					<u--input readonly v-model="inputForm.yearNum" placeholder="输入年度" border="none"></u--input>
 				</u-form-item>
 				<u-form-item label="卡号" borderBottom prop="cardNum">
-					<u--input v-model="inputForm.cardNum" placeholder="输入卡号" border="none"></u--input>
+					<u--input readonly v-model="inputForm.cardNum" placeholder="输入卡号" border="none"></u--input>
 				</u-form-item>
 			</u--form>
 		</view>
@@ -23,12 +23,12 @@
 				<u-form-item label="文件来源" borderBottom prop="fileSource">
 					<u--input v-model="inputForm.fileSource" placeholder="请输入文件来源" border="none"></u--input>
 				</u-form-item>
-				<u-form-item label="成文时间" borderBottom prop="writtenTime">
-					<jp-datetime-picker v-model="inputForm.writtenTime" placeholder="选择成文时间"
-						mode="datetime"></jp-datetime-picker>
+				<u-form-item label="成文时间" borderBottom prop="writtenTime" @click="openDate(1)">
+					<jp-datetime-picker :show="iswrite" v-model="inputForm.writtenTime" placeholder="选择成文时间"
+						mode="date"></jp-datetime-picker>
 				</u-form-item>
-				<u-form-item label="收文时间" borderBottom prop="receivingTime">
-					<jp-datetime-picker v-model="inputForm.receivingTime" placeholder="选择收文时间"
+				<u-form-item label="收文时间" borderBottom prop="receivingTime" @click="openDate(2)">
+					<jp-datetime-picker :show="isreceive" v-model="inputForm.receivingTime" placeholder="选择收文时间"
 						mode="datetime"></jp-datetime-picker>
 				</u-form-item>
 				<u-form-item label="内容摘要" borderBottom prop="contentSummary">
@@ -52,7 +52,7 @@
 				</view>
 				<u-upload :fileList="imgList" @delete="deletePic" multiple :maxCount="imgList.length"
 					:previewFullImage="true"></u-upload>
-				<u--text size="12" type="error" text="请确保上传图片内容清晰可见,所有涉密敏感信息不得上传"></u--text>
+				<u--text size="10" type="error" text="请确保上传图片内容清晰可见,所有涉密敏感信息不得上传"></u--text>
 				<view class="submit_btn flex">
 					<u-button v-if="!loading" type="primary" text="提交新增" @click="formSubmit"></u-button>
 					<u-button v-if="loading" :loading="loading" type="primary" text="加载中"></u-button>
@@ -73,9 +73,20 @@
 	import fileService from '@/api/file/fileService.js'
 	import gwCirculationCard2Service from '@/api/circulation/gwCirculationCard2.js'
 	export default {
+		mounted() {
+			gwCirculationCard2Service.getCardNum().then(data =>{
+				console.log("1111",data);
+				const currentYear = new Date().getFullYear();
+				this.inputForm.yearNum = currentYear
+				this.inputForm.cardNum = "["+currentYear +"]"+data+"号"
+			})	
+		},
 		data() {
 			return {
+				imgsrc: {},
 				loading: false,
+				isreceive: false,
+				iswrite: false,
 				fileLists: [],
 				fileList: [],
 				imgList: [],
@@ -96,6 +107,15 @@
 			}
 		},
 		methods: {
+			// 打开日期
+			openDate(type) {
+				console.log("c====", type);
+				if (type == 1) {
+					this.iswrite = !this.iswrite
+				} else if (type == 2) {
+					this.isreceive = !this.isreceive
+				}
+			},
 			showToast(params) {
 				this.$refs.uToast.show({
 					...params,
@@ -128,8 +148,83 @@
 				this[`imgList${event.name}`].splice(event.index, 1)
 				this[`fileLists${event.name}`].splice(event.index, 1)
 			},
+			// 图片压缩
+			compressH5(urlData) {
+				let that = this
+				return new Promise((resolve, reject) => {
+					let a = uni.getImageInfo({
+						src: urlData.url,
+						success(res) {
+							let originWidth = res.width; //图片原始宽
+							let originHeight = res.height; //图片原始高
+							let maxWidth = 800;
+							let maxHeight = 800;
+							let img = new Image()
+							img.src = res.path
+							let canvas = document.createElement('canvas');
+							let ctx = canvas.getContext('2d')
+							// 目标尺寸
+							let targetWidth = originWidth;
+							let targetHeight = originHeight;
+
+							canvas.width = targetWidth
+							canvas.height = targetHeight
+							// 图片压缩
+							ctx.drawImage(img, 0, 0, targetWidth, targetHeight)
+							// canvas对图片进行缩放 0.3是我定义的图片质量,
+							let base64 = canvas.toDataURL(urlData.type, 0.3);
+							// 将base64转换为file流,
+							
+							let file = that.convertBase64UrlToFile({
+								url: base64,
+								type: urlData.type,
+								name: urlData.name
+							})
+							
+							urlData.size = file.size
+							let result =  that.uploadFilePromise(urlData)
+							setTimeout(() => {
+								resolve(result)
+							}, 1000)
+						},
+						fail() {
+							uni.showModal({
+								title: '提示',
+								content: '图片压缩失败',
+								showCancel: false
+							});
+						}
+					})
+				})
+			},
+			convertBase64UrlToFile(base64) {
+				let urlData = base64.url
+				let type = base64.type
+				let contentName = base64.name
+				let bytes = null
+				if (urlData.split(',').length > 1) { //是否带前缀
+					bytes = window.atob(urlData.split(',')[1]) // 去掉url的头,并转换为byte
+				} else {
+					bytes = window.atob(urlData)
+				}
+				// 处理异常,将ascii码小于0的转换为大于0
+				let ab = new ArrayBuffer(bytes.length)
+				let ia = new Uint8Array(ab)
+				for (let i = 0; i < bytes.length; i++) {
+					ia[i] = bytes.charCodeAt(i)
+				}
+				let result = new Blob([ab], {
+					type: type,
+				})
+				let result1 = new File([result], contentName, {
+					type: type
+				})
+				result1.url = window.URL.createObjectURL(result)
+				return result1
+			},
 			// 新增图片
 			async afterRead(event) {
+				console.log("event", event);
 				// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
 				let lists = [].concat(event.file)
 				let fileListLen = this.fileLists.length
@@ -141,9 +236,16 @@
 					})
 				})
 				for (let i = 0; i < lists.length; i++) {
-					const result = await this.uploadFilePromise(lists[i])
+					console.log("lists", lists[i]);
+					let result =""
+					if (isImageFormat(lists[i].name) && lists[i].size > (200 * 1024)) {
+						result = await this.compressH5(lists[i]);
+						console.log("2222222", result);
+					}else {
+						result = await this.uploadFilePromise(lists[i])
+					}
 					let item = this.fileLists[fileListLen]
-					
+
 					this.fileLists.splice(fileListLen, 1, Object.assign(item, {
 						status: 'success',
 						message: '',
@@ -152,7 +254,7 @@
 					fileListLen++
 					if (isImageFormat(item.url)) {
 						let item1 = {
-							url:BASE_URL + result
+							url: BASE_URL + result
 						}
 						this.imgList.push(item1)
 					} else {
@@ -165,8 +267,10 @@
 					}
 				}
 			},
-			uploadFilePromise(param) {
+			async uploadFilePromise(param) {
+				
 				return new Promise((resolve, reject) => {
+					
 					let a = uni.uploadFile({
 						url: this.BASE_URL + '/gwfile/upload?uploadPath=filtransmit',
 						filePath: param.url,
@@ -176,7 +280,9 @@
 						},
 						formData: param,
 						success: (res) => {
+							console.log("param", res);
 							setTimeout(() => {
+								console.log("param", res.data);
 								resolve(res.data)
 							}, 1000)
 						}
@@ -205,14 +311,9 @@
 						type: 'success',
 						message: data,
 						iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png',
-						url:"/pages/fileTransmit/addFileTransmit"
+						url: "/pages/index/index"
 					}
 					this.showToast(param);
-					// setTimeout(() => {
-					// 	uni.redirectTo({
-					// 		url: '/pages/fileTransmit/addFileTransmit'
-					// 	});
-					// }, 500)
 				}).catch(() => {
 					let param = {
 						type: 'error',

+ 36 - 43
jp-mobile/pages/fileTransmit/examineFile.vue

@@ -18,23 +18,23 @@
 						<jp-picker v-model="auditForm.nextLeadUser" placeholder="请选择转发领导" :range="leaderList"
 							rangeKey="name" rangeValue="loginName"></jp-picker>
 					</u-form-item>
-					<u-form-item label="科室承办" borderBottom prop="nextDepUser">
+					<u-form-item v-if="!one" label="科室承办" borderBottom prop="nextDepUser">
 						<office-user-select v-model="auditForm.nextDepUser" placeholder="请选择科室承办"
 							title="科室承办"></office-user-select>
 					</u-form-item>
 					<u-form-item v-if="one" label="备注" borderBottom prop="remark">
 						<u--input v-model="auditForm.remark" placeholder="请输入备注" border="none"></u--input>
 					</u-form-item>
-					<u-form-item v-if="show" label="签字" borderBottom prop="signfj">
+					<!-- <u-form-item v-if="show" label="签字" borderBottom prop="signfj">
 						<signInput ref="sign" canvasId="twoDrowCanvas" canvasIds="twoRotateCanvas" :header="header"
 							:action="action" @signToUrl="signToUrl">
 						</signInput>
-					</u-form-item>
+					</u-form-item> -->
 					<view class="submit_btn flex ">
 						<u-button v-if="isAll" @click="formSubmit" type="success" text="归档"></u-button>
-						<u-button v-if="!show && one" :disabled="!auditForm.nextLeadUser!=''" type="primary" text="确认签字"
-							@click="show = true"></u-button>
-						<u-button v-if="(show || !one) && !loading" type="primary" text="提交" @click="doSubmit"></u-button>
+						<!-- <u-button v-if="!show && one" :disabled="!auditForm.nextLeadUser!=''" type="primary" text="确认签字"
+							@click="show = true"></u-button> -->
+						<u-button v-if="!loading" type="primary" :disabled="!auditForm.nextLeadUser!=''" text="确认签字" @click="doSubmit"></u-button>
 						<u-button v-if="loading" :loading="loading" type="primary" text="加载中"></u-button>
 					</view>
 				</u--form>
@@ -43,14 +43,14 @@
 					<u-form-item label="领导批示" borderBottom prop="content">
 						<u--textarea v-model="auditForm.content" placeholder=""></u--textarea>
 					</u-form-item>
-					<u-form-item v-if="show" label="签字" borderBottom prop="signfj">
+					<!-- <u-form-item v-if="show" label="签字" borderBottom prop="signfj">
 						<signInput ref="sign" canvasId="twoDrowCanvas" canvasIds="twoRotateCanvas" :header="header"
 							:action="action" @signToUrl="signToUrl">
 						</signInput>
-					</u-form-item>
+					</u-form-item> -->
 					<view class="submit_btn flex ">
-						<u-button v-if="!show" type="primary" text="确认签字" @click="show = true"></u-button>
-						<u-button v-if="show && !loading" type="primary" text="提交" @click="doSubmit"></u-button>
+						<!-- <u-button v-if="!show" type="primary" text="确认签字" @click="show = true"></u-button> -->
+						<u-button v-if="!loading" type="primary" text="确认签字" @click="doSubmit"></u-button>
 						<u-button v-if="loading" :loading="loading" type="primary" text="加载中"></u-button>
 					</view>
 				</u--form>
@@ -59,15 +59,15 @@
 					<u-form-item label="承办科室" borderBottom prop="content">
 						<u--textarea v-model="auditForm.content" placeholder=""></u--textarea>
 					</u-form-item>
-					<u-form-item v-if="show" label="签字" borderBottom prop="signfj">
+					<!-- <u-form-item v-if="show" label="签字" borderBottom prop="signfj">
 						<signInput ref="sign" canvasId="twoDrowCanvas" canvasIds="twoRotateCanvas" :header="header"
 							:action="action" @signToUrl="signToUrl">
 						</signInput>
-					</u-form-item>
+					</u-form-item> -->
 					<view class="submit_btn flex ">
-						<u-button v-if="!show" type="primary" text="确认签字" @click="show = true"></u-button>
+						<!-- <u-button v-if="!show" type="primary" text="确认签字" @click="show = true"></u-button> -->
 						<u-button v-if="loading" :loading="loading" type="primary" text="加载中"></u-button>
-						<u-button v-if="show && !loading" type="primary" text="提交" @click="doSubmit"></u-button>
+						<u-button v-if="show && !loading" type="primary" text="确认签字" @click="doSubmit"></u-button>
 					</view>
 				</u--form>
 			</view>
@@ -92,6 +92,16 @@
 			this.gwId = option.id
 			gwFlowService.queryByGwId(this.gwId).then(data => {
 				if (data.length > 1) this.one = false
+				if(this.one) {
+					this.roleId = "1770353074553331713"
+				}else {
+					console.log("签字=====",this.one);
+					this.roleId = "1773547256256622594"
+				}
+				userService.leaderList(this.roleId).then(data => {
+					this.leaderList = data
+					if(this.one) this.auditForm.nextLeadUser =data[0].loginName
+				})
 				let user = $auth.getUserInfo()
 				let role = $auth.getUserInfo().roleNames
 				let gw = data.filter(item => {
@@ -108,7 +118,6 @@
 						return item.which == 0
 					})
 					this.auditForm = gw1[0]
-					console.log("gwForm",this.gwForm);
 					}
 				if (role == '局领导' && gw.length > 0) this.isleader = true
 				if (role == '科室负责人' && gw.length > 0) this.isundertake = true
@@ -119,18 +128,6 @@
 			signInput,
 			officeUserSelect
 		},
-		mounted() {
-
-			this.searchForm.officeDTO.id = "1770354910488272897"
-			userService.list({
-				current: this.tablePage.currentPage,
-				size: this.tablePage.pageSize,
-				orders: this.tablePage.orders,
-				...this.searchForm
-			}).then(data => {
-				this.leaderList = data.records
-			})
-		},
 		data() {
 			return {
 				loading: false,
@@ -171,15 +168,17 @@
 					}],
 				},
 				searchForm: {
-					loginName: "",
-					name: "",
-					companyDTO: {
-						id: "",
-					},
-					officeDTO: {
-						id: "",
-					},
+					
+					// loginName: "",
+					// name: "",
+					// companyDTO: {
+					// 	id: "",
+					// },
+					// officeDTO: {
+					// 	id: "",
+					// },
 				},
+				roleId:""
 			}
 		},
 		methods: {
@@ -198,7 +197,7 @@
 			 * 签名完成回调
 			 */
 			signToUrl(e) {
-				console.log("签字=====",e);
+				
 				this.auditForm.signfj = e.data
 				if (e.error_code && e.error_code === '201') {
 					uni.showToast({
@@ -212,16 +211,10 @@
 			doSubmit() {
 				let inputForm={};
 				this.loading = true
-				// if(this.one){
 					if (this.auditForm.nextLeadUser != '' || this.auditForm.nextDepUser != '') this.auditForm.next = '1'
 					this.auditForm.state = "0"
 					this.auditForm.gwId = this.gwId
 					inputForm = this.auditForm
-				// }else {
-				// 	this.gwForm.nextLeadUser = this.gwForm.nextLeadUser + "," +this.auditForm.nextLeadUser
-				// 	this.gwForm.nextDepUser = this.auditForm.nextDepUser+ "," +this.auditForm.nextDepUser
-				// 	inputForm = this.gwForm
-				// }
 				
 				gwFlowService.save(inputForm).then(data => {
 					let param = {
@@ -247,7 +240,7 @@
 					gwCirculationCard2Service.save(data).then(res => {
 						let param = {
 							type: 'success',
-							message: data,
+							message: "已归档",
 							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png',
 						}
 						this.showToast(param);

+ 6 - 5
jp-mobile/pages/fileTransmit/fileCard.vue

@@ -19,13 +19,13 @@
 						<view>来文机关</view>
 					</u-col>
 					<u-col span="3" textAlign="center" class="">
-						<view>{{inputForm.sendingAgency}}</view>
+						<u--text size="10" align="center" lines="1" :text="inputForm.sendingAgency"></u--text>
 					</u-col>
 					<u-col span="3" textAlign="center" class="card_col card_col_1">
 						<view>来文字号</view>
 					</u-col>
 					<u-col span="3" textAlign="center">
-						<view>{{inputForm.docFontSize}}</view>
+						<u--text size="10" align="center" lines="1" :text="inputForm.docFontSize"></u--text>
 					</u-col>
 				</u-row>
 				<u-row justify="space-between" class="card_row card_row_border">
@@ -33,13 +33,13 @@
 						<view>收文时间</view>
 					</u-col>
 					<u-col span="3" textAlign="center" class="">
-						<view>{{inputForm.receivingTime}}</view>
+						<u--text size="10" align="center" lines="1" :text="inputForm.receivingTime"></u--text>
 					</u-col>
 					<u-col span="3" textAlign="center" class="card_col card_col_1">
 						<view>文件来源</view>
 					</u-col>
 					<u-col span="3" textAlign="center">
-						<view>{{inputForm.fileSource}}</view>
+						<u--text size="10" align="center" lines="1" :text="inputForm.fileSource"></u--text>
 					</u-col>
 				</u-row>
 				<u-row justify="space-between" class="card_row card_row_border">
@@ -109,7 +109,7 @@
 						<view>{{inputForm.remark}}</view>
 					</u-col>
 				</u-row>
-				<u--text style="margin: 10px;" size="12" type="error" text="所有涉密敏感信息不得上传"></u--text>
+				<u--text style="margin: 10px;" size="10" type="error" text="所有涉密敏感信息不得上传"></u--text>
 				<view class="card_other">
 					附件:
 					<view class="other_info" v-for="item in fileList">
@@ -167,6 +167,7 @@
 				})
 			})
 			gwFlowService.queryByGwId(this.gwId).then(data => {
+				
 				data.forEach(item => {
 					if (item.which == 0 && item.state == 0) {
 						if (item.signfj && !item.signfj.startsWith("http")) item.signfj = this.BASE_URL +

+ 32 - 3
jp-mobile/pages/fileTransmit/fileTransmitList.vue

@@ -14,11 +14,14 @@
 							<view class="ellipsis-description">
 								{{item.contentSummary}}
 							</view>
+							
 						</view>
 					</view>
 					<view slot="value">
+						
 						<view class="text-grey text-sm  list_label margin-top">
-							{{item.createTime}}
+							{{item.createTime}} <u-tag v-if="type==5" :text="item.state==1?'待办':item.state == 3?'归档':'已办'" plain size="mini" :type="item.state==1?'warning':item.state == 3?'primary':'success'">
+						</u-tag>
 						</view>
 					</view>
 					<view slot="label">
@@ -41,6 +44,28 @@
 		onLoad(option) {
 			if (option) {
 				this.type = option.type
+				switch (option.type) {
+					case "1":
+						uni.setNavigationBarTitle({
+							title: '待办列表' // 设置为你想要显示的标题文本
+						});
+						break;
+					case "3":
+						uni.setNavigationBarTitle({
+							title: '归档列表' // 设置为你想要显示的标题文本
+						});
+						break;
+					case "4":
+						uni.setNavigationBarTitle({
+							title: '已办列表' // 设置为你想要显示的标题文本
+						});
+						break;
+					case "5":
+						uni.setNavigationBarTitle({
+							title: '公文列表' // 设置为你想要显示的标题文本
+						});
+						break;
+				}
 				this.searchForm.state = option.type
 				this.loadmore()
 			}
@@ -80,7 +105,8 @@
 		methods: {
 			// 查看详情
 			toInfo(item) {
-				if (this.type == 3) {
+				console.log("item ===",this.type);
+				if (this.type == 3 || this.type == 5) {
 					uni.navigateTo({
 						url: '/pages/fileTransmit/fileInfo?id=' + item.id
 					})
@@ -132,7 +158,10 @@
 				this.tablePage.currentPage = ++this.tablePage.currentPage;
 				//联网加载数据
 				this.status = 'loading';
-				let {createTime,...newForm} = this.searchForm
+				let {
+					createTime,
+					...newForm
+				} = this.searchForm
 				gwCirculationCard2Service.list({
 					current: this.tablePage.currentPage,
 					size: this.tablePage.pageSize,

+ 5 - 5
jp-mobile/pages/login/login.vue

@@ -7,7 +7,7 @@
 				<view class="top_ri"></view>
 			</view>
 			<view class="title">
-				<view>文件传阅流转卡</view>
+				<view>公文流转管理平台</view>
 			</view>
 			<view class="login-form">
 				<u--form :model="inputForm" labelWidth="100px"  labelPosition="left" :rules="rules" ref="uForm">
@@ -17,20 +17,20 @@
 						<u-form-item label="密码" borderBottom prop="password">
 							<u-input border="none" password v-model="inputForm.password" />
 						</u-form-item>
-						<u-form-item label="验证码" borderBottom prop="code">
+						<!-- <u-form-item label="验证码" borderBottom prop="code">
 							<u-input border="none" v-model="inputForm.code" />
 							<u--image :showLoading="true" :src="captchaImg" width="140px" height="40px" @click="getCaptcha"></u--image>
-						</u-form-item>
+						</u-form-item> -->
 				</u--form>
 			</view>
 			<view class="but">
 				<u-button type="primary" shape="circle" color="linear-gradient(90deg, #1989FA, #19C2FA)" @click="bindLogin" text="欢迎登录"></u-button>
 			</view>
-			<view class="fot">
+			<!-- <view class="fot">
 				<text @tap="reg_ok">免费注册</text>
 				<text style="display: inline-block;width: 10vw;"></text>
 				<text @tap="forget_ok">忘记密码</text>
-			</view>
+			</view> -->
 	</view>
 	</view>
 </template>

+ 8 - 6
jp-mobile/pages/user/person/person.vue

@@ -9,10 +9,11 @@
     </view>
 	<u-cell-group :border="false" customStyle="padding: 5px">
 		<u-cell
-		    title="公司"
+		    title="签名"
 			icon="home-fill"
 			:iconStyle="{color: '#0081ff'}"
-			:value="userInfo.companyDTO && userInfo.companyDTO.name"
+			isLink
+			url="/pages/user/setting/signature/signature"
 		></u-cell>
 		<u-cell
 		    title="部门"
@@ -38,12 +39,12 @@
 			:iconStyle="{color: '#0081ff'}"
 			:value="userInfo.phone"
 		></u-cell>
-		<u-cell
+		<!-- <u-cell
 		    title="邮箱"
 			icon="email-fill"
 			:iconStyle="{color: '#0081ff'}"
 			:value="userInfo.email"
-		></u-cell>
+		></u-cell> -->
 		<u-cell
 		    title="修改密码"
 			icon="edit-pen"
@@ -55,7 +56,7 @@
 
 	<view class="padding-xl">
 		<u-button type="primary" text="退出登录" @click="outlogin"></u-button>
-		<u-gap height="80" bgColor="#fff"></u-gap>
+		<!-- <u-gap height="80" bgColor="#fff"></u-gap> -->
 	</view>
 
   </view>
@@ -85,10 +86,11 @@
       },
 	 ChooseImage() {
 	 	uni.chooseImage({
-	 		count: 4, //默认9
+	 		count: 1, //默认9
 	 		sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
 	 		sourceType: ['album'], //从相册选择
 	 		success: (res) => {
+				console.log("photo",res);
 				this.upload(res.tempFilePaths[0])
 	 		}
 	 	});

+ 95 - 0
jp-mobile/pages/user/setting/signature/signature.vue

@@ -0,0 +1,95 @@
+<template>
+	<view>
+		<u--form :model="inputForm" labelWidth="100px" class="u-form" labelPosition="left" 
+			ref="inputForm">
+			<u-form-item label="旧签名" borderBottom prop="signPic">
+				<u--image :showLoading="true" :src="BASE_URL + inputForm.signPic " width="100px" height="40px"></u--image>
+			</u-form-item>
+
+			<u-form-item label="签字" borderBottom prop="signPic">
+				<signInput ref="sign" canvasId="twoDrowCanvas" canvasIds="twoRotateCanvas" :header="header"
+					:action="action" @signToUrl="signToUrl">
+				</signInput>
+			</u-form-item>
+			<view class="padding-xl">
+				<u-button type="primary" @click="formSubmit" text="提交"></u-button>
+			</view>
+		</u--form>
+	</view>
+</template>
+
+<script>
+	import userService from "@/api/sys/userService"
+	import * as $auth from "@/common/auth.js"
+	import BASE_URL from '@/config.js'
+	import signInput from "@/components/am-sign-input/am-sign-input.vue"
+	export default {
+
+		components:{
+			signInput
+		},
+		data() {
+			return {
+				action: this.BASE_URL + '/gwfile/upload?uploadPath=sign', //上传服务器的地址
+				header: {"token": $auth.getUserToken()}, //图片上传携带头部信息
+				loading: false,
+				inputForm: this.$auth.getUserInfo()
+			}
+		},
+
+		methods: {
+			/**
+			 * @param {Object} e
+			 * 签名完成回调
+			 */
+			signToUrl(e) {
+				console.log("签字=====", e);
+				this.inputForm.signPic = e.data
+				if (e.error_code && e.error_code === '201') {
+					uni.showToast({
+						title: e.msg,
+						icon: 'none'
+					})
+					return
+				}
+			},
+			formSubmit: function(e) {
+				//定义表单规则
+				// this.$refs.inputForm.validate().then(res => {
+					uni.showLoading()
+					userService.saveInfo(this.inputForm).then((data) => {
+						uni.showToast({
+							title: data,
+							icon: "success"
+						});
+						uni.clearStorage();
+						uni.reLaunch({
+							url: '/pages/login/login'
+						})
+					// }).catch((e) => {
+					// 	console.log(e)
+					// })
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+	.btn-logout {
+		margin-top: 100upx;
+		width: 80%;
+		border-radius: 50upx;
+		font-size: 16px;
+		color: #fff;
+		background: linear-gradient(to right, #365fff, #36bbff);
+	}
+
+	.btn-logout-hover {
+		background: linear-gradient(to right, #365fdd, #36bbfa);
+	}
+
+	.cu-form-group .title {
+		min-width: calc(4em + 40px);
+	}
+</style>

+ 4 - 4
jp-mobile/pages/workbench/workbench.vue

@@ -11,19 +11,19 @@
 			</swiper-item>
 		</swiper>
 		<view class="cu-list grid col-4 no-border fixed">
-			<view class="circle-button-box">
+			<view @click="toList(5)" class="circle-button-box">
 				<view class="text-primary text_font_size">{{statistics.allcount?statistics.allcount:0}}</view>
 				<text>总数</text>
 			</view>
-			<view class="circle-button-box">
+			<view @click="toList(1)" class="circle-button-box">
 				<view class="text-danger text_font_size">{{statistics.db?statistics.db:0}}</view>
 				<text>待办</text>
 			</view>
-			<view class="circle-button-box">
+			<view @click="toList(4)" class="circle-button-box">
 				<view class="text-success text_font_size">{{statistics.yb?statistics.yb:0}}</view>
 				<text>已办</text>
 			</view>
-			<view class="circle-button-box">
+			<view @click="toList(3)" class="circle-button-box">
 				<view class="text-warning text_font_size">{{statistics.gdcount?statistics.gdcount:0}}</view>
 				<text>归档</text>
 			</view>