Browse Source

更新上传附件,主办人协办人,评分人新增可搜可选

嘀嘀嘀 1 year ago
parent
commit
5831274150
42 changed files with 2962 additions and 2361 deletions
  1. 91 89
      common/httpRequest.js
  2. 2 2
      main.js
  3. 1 1
      pages/404/404.vue
  4. 2 4
      pages/index/index.vue
  5. 80 43
      pages/project/addProject.vue
  6. 440 441
      pages/project/addRenwu.vue
  7. 439 440
      pages/project/changeRenwu.vue
  8. 6 8
      pages/project/index.vue
  9. 1094 1012
      pages/project/projectChange.vue
  10. 10 7
      pages/project/projectX.vue
  11. 300 300
      pages/project/renwuUpdateJin.vue
  12. 15 0
      uni_modules/uni-combox/changelog.md
  13. 367 0
      uni_modules/uni-combox/components/uni-combox/uni-combox.vue
  14. 90 0
      uni_modules/uni-combox/package.json
  15. 11 0
      uni_modules/uni-combox/readme.md
  16. 1 1
      uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue
  17. BIN
      unpackage/dist/build/web.zip
  18. 1 1
      unpackage/dist/build/web/index.html
  19. 1 0
      unpackage/dist/build/web/static/js/index.7bc47a24.js
  20. 0 1
      unpackage/dist/build/web/static/js/index.91f1b726.js
  21. 0 1
      unpackage/dist/build/web/static/js/pages-404-404.a1eb1360.js
  22. 1 0
      unpackage/dist/build/web/static/js/pages-404-404.f06ed168.js
  23. 0 1
      unpackage/dist/build/web/static/js/pages-index-index.99a72c99.js
  24. 1 0
      unpackage/dist/build/web/static/js/pages-index-index.d888b1ef.js
  25. 1 0
      unpackage/dist/build/web/static/js/pages-project-addProject.dbddde7f.js
  26. 0 1
      unpackage/dist/build/web/static/js/pages-project-addProject.f02bb866.js
  27. 1 0
      unpackage/dist/build/web/static/js/pages-project-addProject~pages-project-addRenwu~pages-project-changeRenwu~pages-project-projectChang~dce6e7d1.16545640.js
  28. 0 1
      unpackage/dist/build/web/static/js/pages-project-addProject~pages-project-addRenwu~pages-project-changeRenwu~pages-project-projectChang~dce6e7d1.1f88f1e7.js
  29. 1 0
      unpackage/dist/build/web/static/js/pages-project-addProject~pages-project-projectChange.dc6e58a9.js
  30. 0 1
      unpackage/dist/build/web/static/js/pages-project-addProject~pages-project-projectChange.f28e1406.js
  31. 1 0
      unpackage/dist/build/web/static/js/pages-project-addRenwu.32ca17dd.js
  32. 0 1
      unpackage/dist/build/web/static/js/pages-project-addRenwu.3949b179.js
  33. 1 0
      unpackage/dist/build/web/static/js/pages-project-changeRenwu.58d88e0f.js
  34. 0 1
      unpackage/dist/build/web/static/js/pages-project-changeRenwu.da8a5335.js
  35. 1 0
      unpackage/dist/build/web/static/js/pages-project-index.7d7ed871.js
  36. 0 1
      unpackage/dist/build/web/static/js/pages-project-index.98ddc2b0.js
  37. 0 1
      unpackage/dist/build/web/static/js/pages-project-projectChange.1eee929c.js
  38. 1 0
      unpackage/dist/build/web/static/js/pages-project-projectChange.d10c04af.js
  39. 1 0
      unpackage/dist/build/web/static/js/pages-project-projectX.11e7bc21.js
  40. 0 1
      unpackage/dist/build/web/static/js/pages-project-projectX.4c73c17f.js
  41. 1 0
      unpackage/dist/build/web/static/js/pages-project-renwuUpdateJin.1a498f64.js
  42. 0 1
      unpackage/dist/build/web/static/js/pages-project-renwuUpdateJin.c89897cf.js

+ 91 - 89
common/httpRequest.js

@@ -39,9 +39,9 @@ module.exports = {
 		}
 		}
 		header = header || "application/json";
 		header = header || "application/json";
 		url = this.config("APIHOST1") + url;
 		url = this.config("APIHOST1") + url;
-		// console.log(uni.getStorageSync("token"),'l')
-		// let token = uni.getStorageSync("token");
-		let token = uni.getStorageSync("token");
+		// console.log(sessionStorage.getItem("token"),'l')
+		// let token = sessionStorage.getItem("token");
+		let token = sessionStorage.getItem("token");
 		if (token) {
 		if (token) {
 			return new Promise((succ, error) => {
 			return new Promise((succ, error) => {
 				uni.request({
 				uni.request({
@@ -59,13 +59,15 @@ module.exports = {
 							result.data=JSON.parse(decryptData)
 							result.data=JSON.parse(decryptData)
 						}
 						}
 						if(result.data.message=="登录凭证已过去,请重新登录"){
 						if(result.data.message=="登录凭证已过去,请重新登录"){
-							uni.removeStorageSync("tokenW")
-							uni.removeStorageSync("roleId")
-							uni.removeStorageSync("crerenwu")
-							uni.removeStorageSync("uprenwu")
-							uni.removeStorageSync("delerenwu")
-							uni.removeStorageSync("cuirenwu")
-							uni.removeStorageSync("gengrenwu")
+							// 从 sessionStorage 删除所有保存的数据
+							// sessionStorage.clear();
+							sessionStorage.removeItem("token")
+							sessionStorage.removeItem("roleId")
+							sessionStorage.removeItem("crerenwu")
+							sessionStorage.removeItem("uprenwu")
+							sessionStorage.removeItem("delerenwu")
+							sessionStorage.removeItem("cuirenwu")
+							sessionStorage.removeItem("gengrenwu")
 							uni.showModal({
 							uni.showModal({
 								title: '提示',
 								title: '提示',
 								content: '用户信息失效,请重新登录!',
 								content: '用户信息失效,请重新登录!',
@@ -80,13 +82,13 @@ module.exports = {
 							});
 							});
 						}
 						}
 						if (result.data.code == 401 && token) {
 						if (result.data.code == 401 && token) {
-							uni.removeStorageSync("tokenW")
-							uni.removeStorageSync("roleId")
-							uni.removeStorageSync("crerenwu")
-							uni.removeStorageSync("uprenwu")
-							uni.removeStorageSync("delerenwu")
-							uni.removeStorageSync("cuirenwu")
-							uni.removeStorageSync("gengrenwu")
+							sessionStorage.removeItem("token")
+							sessionStorage.removeItem("roleId")
+							sessionStorage.removeItem("crerenwu")
+							sessionStorage.removeItem("uprenwu")
+							sessionStorage.removeItem("delerenwu")
+							sessionStorage.removeItem("cuirenwu")
+							sessionStorage.removeItem("gengrenwu")
 							uni.showModal({
 							uni.showModal({
 								title: '提示',
 								title: '提示',
 								content: '用户信息失效,请重新登录!',
 								content: '用户信息失效,请重新登录!',
@@ -147,8 +149,8 @@ module.exports = {
 		}
 		}
 		header = header || "application/x-www-form-urlencoded";
 		header = header || "application/x-www-form-urlencoded";
 		url = this.config("APIHOST1") + url;
 		url = this.config("APIHOST1") + url;
-		// let token = uni.getStorageSync("token");
-		let token = uni.getStorageSync("token");
+		// let token = sessionStorage.getItem("token");
+		let token = sessionStorage.getItem("token");
 		if (token) {
 		if (token) {
 			return new Promise((succ, error) => {
 			return new Promise((succ, error) => {
 				uni.request({
 				uni.request({
@@ -166,13 +168,13 @@ module.exports = {
 							result.data=JSON.parse(decryptData)
 							result.data=JSON.parse(decryptData)
 						}
 						}
 						if(result.data.message=="登录凭证已过去,请重新登录"){
 						if(result.data.message=="登录凭证已过去,请重新登录"){
-							uni.removeStorageSync("tokenW")
-							uni.removeStorageSync("roleId")
-							uni.removeStorageSync("crerenwu")
-							uni.removeStorageSync("uprenwu")
-							uni.removeStorageSync("delerenwu")
-							uni.removeStorageSync("cuirenwu")
-							uni.removeStorageSync("gengrenwu")
+							sessionStorage.removeItem("token")
+							sessionStorage.removeItem("roleId")
+							sessionStorage.removeItem("crerenwu")
+							sessionStorage.removeItem("uprenwu")
+							sessionStorage.removeItem("delerenwu")
+							sessionStorage.removeItem("cuirenwu")
+							sessionStorage.removeItem("gengrenwu")
 							uni.showModal({
 							uni.showModal({
 								title: '提示',
 								title: '提示',
 								content: '用户信息失效,请重新登录!',
 								content: '用户信息失效,请重新登录!',
@@ -187,13 +189,13 @@ module.exports = {
 							});
 							});
 						}
 						}
 						if (result.data.code == 401 && token) {
 						if (result.data.code == 401 && token) {
-							uni.removeStorageSync("tokenW")
-							uni.removeStorageSync("roleId")
-							uni.removeStorageSync("crerenwu")
-							uni.removeStorageSync("uprenwu")
-							uni.removeStorageSync("delerenwu")
-							uni.removeStorageSync("cuirenwu")
-							uni.removeStorageSync("gengrenwu")
+							sessionStorage.removeItem("token")
+							sessionStorage.removeItem("roleId")
+							sessionStorage.removeItem("crerenwu")
+							sessionStorage.removeItem("uprenwu")
+							sessionStorage.removeItem("delerenwu")
+							sessionStorage.removeItem("cuirenwu")
+							sessionStorage.removeItem("gengrenwu")
 							uni.showModal({
 							uni.showModal({
 								title: '提示',
 								title: '提示',
 								content: '用户信息失效,请重新登录!',
 								content: '用户信息失效,请重新登录!',
@@ -229,13 +231,13 @@ module.exports = {
 							result.data=JSON.parse(decryptData)
 							result.data=JSON.parse(decryptData)
 						}
 						}
 						if(result.data.message=="登录凭证已过去,请重新登录"){
 						if(result.data.message=="登录凭证已过去,请重新登录"){
-							uni.removeStorageSync("tokenW")
-							uni.removeStorageSync("roleId")
-							uni.removeStorageSync("crerenwu")
-							uni.removeStorageSync("uprenwu")
-							uni.removeStorageSync("delerenwu")
-							uni.removeStorageSync("cuirenwu")
-							uni.removeStorageSync("gengrenwu")
+							sessionStorage.removeItem("token")
+							sessionStorage.removeItem("roleId")
+							sessionStorage.removeItem("crerenwu")
+							sessionStorage.removeItem("uprenwu")
+							sessionStorage.removeItem("delerenwu")
+							sessionStorage.removeItem("cuirenwu")
+							sessionStorage.removeItem("gengrenwu")
 							uni.showModal({
 							uni.showModal({
 								title: '提示',
 								title: '提示',
 								content: '用户信息失效,请重新登录!',
 								content: '用户信息失效,请重新登录!',
@@ -250,13 +252,13 @@ module.exports = {
 							});
 							});
 						}
 						}
 						if (result.data.code == 401) {
 						if (result.data.code == 401) {
-							uni.removeStorageSync("tokenW")
-							uni.removeStorageSync("roleId")
-							uni.removeStorageSync("crerenwu")
-							uni.removeStorageSync("uprenwu")
-							uni.removeStorageSync("delerenwu")
-							uni.removeStorageSync("cuirenwu")
-							uni.removeStorageSync("gengrenwu")
+							sessionStorage.removeItem("token")
+							sessionStorage.removeItem("roleId")
+							sessionStorage.removeItem("crerenwu")
+							sessionStorage.removeItem("uprenwu")
+							sessionStorage.removeItem("delerenwu")
+							sessionStorage.removeItem("cuirenwu")
+							sessionStorage.removeItem("gengrenwu")
 							uni.showModal({
 							uni.showModal({
 								title: '提示',
 								title: '提示',
 								content: '用户信息失效,请重新登录!',
 								content: '用户信息失效,请重新登录!',
@@ -294,7 +296,7 @@ module.exports = {
 		}
 		}
 		header = header || "application/x-www-form-urlencoded";
 		header = header || "application/x-www-form-urlencoded";
 		url = this.config("APIHOST1") + url;
 		url = this.config("APIHOST1") + url;
-		let token = uni.getStorageSync("token");
+		let token = sessionStorage.getItem("token");
 		return new Promise((succ, error) => {
 		return new Promise((succ, error) => {
 			uni.request({
 			uni.request({
 				url: url,
 				url: url,
@@ -312,13 +314,13 @@ module.exports = {
 						result.data=JSON.parse(decryptData)
 						result.data=JSON.parse(decryptData)
 					}
 					}
 					if(result.data.message=="登录凭证已过去,请重新登录"){
 					if(result.data.message=="登录凭证已过去,请重新登录"){
-						uni.removeStorageSync("tokenW")
-						uni.removeStorageSync("roleId")
-						uni.removeStorageSync("crerenwu")
-						uni.removeStorageSync("uprenwu")
-						uni.removeStorageSync("delerenwu")
-						uni.removeStorageSync("cuirenwu")
-						uni.removeStorageSync("gengrenwu")
+						sessionStorage.removeItem("token")
+						sessionStorage.removeItem("roleId")
+						sessionStorage.removeItem("crerenwu")
+						sessionStorage.removeItem("uprenwu")
+						sessionStorage.removeItem("delerenwu")
+						sessionStorage.removeItem("cuirenwu")
+						sessionStorage.removeItem("gengrenwu")
 						uni.showModal({
 						uni.showModal({
 							title: '提示',
 							title: '提示',
 							content: '用户信息失效,请重新登录!',
 							content: '用户信息失效,请重新登录!',
@@ -333,13 +335,13 @@ module.exports = {
 						});
 						});
 					}
 					}
 					if(result.data.message=="token为空"){
 					if(result.data.message=="token为空"){
-						uni.removeStorageSync("tokenW")
-						uni.removeStorageSync("roleId")
-						uni.removeStorageSync("crerenwu")
-						uni.removeStorageSync("uprenwu")
-						uni.removeStorageSync("delerenwu")
-						uni.removeStorageSync("cuirenwu")
-						uni.removeStorageSync("gengrenwu")
+						sessionStorage.removeItem("token")
+						sessionStorage.removeItem("roleId")
+						sessionStorage.removeItem("crerenwu")
+						sessionStorage.removeItem("uprenwu")
+						sessionStorage.removeItem("delerenwu")
+						sessionStorage.removeItem("cuirenwu")
+						sessionStorage.removeItem("gengrenwu")
 						uni.showModal({
 						uni.showModal({
 							title: '提示',
 							title: '提示',
 							content: '请登录!',
 							content: '请登录!',
@@ -354,13 +356,13 @@ module.exports = {
 						});
 						});
 					}
 					}
 					if (result.data.code == 401) {
 					if (result.data.code == 401) {
-						uni.removeStorageSync("tokenW")
-						uni.removeStorageSync("roleId")
-						uni.removeStorageSync("crerenwu")
-						uni.removeStorageSync("uprenwu")
-						uni.removeStorageSync("delerenwu")
-						uni.removeStorageSync("cuirenwu")
-						uni.removeStorageSync("gengrenwu")
+						sessionStorage.removeItem("token")
+						sessionStorage.removeItem("roleId")
+						sessionStorage.removeItem("crerenwu")
+						sessionStorage.removeItem("uprenwu")
+						sessionStorage.removeItem("delerenwu")
+						sessionStorage.removeItem("cuirenwu")
+						sessionStorage.removeItem("gengrenwu")
 	
 	
 						uni.showModal({
 						uni.showModal({
 							title: '提示',
 							title: '提示',
@@ -394,8 +396,8 @@ module.exports = {
 		}
 		}
 		header = header || "application/json";
 		header = header || "application/json";
 		// url = '/'+url;//this.config("APIHOST1") + url;
 		// url = '/'+url;//this.config("APIHOST1") + url;
-		// let token = uni.getStorageSync("token");
-		let token = uni.getStorageSync("token");
+		// let token = sessionStorage.getItem("token");
+		let token = sessionStorage.getItem("token");
 		if (token) {
 		if (token) {
 			return new Promise((succ, error) => {
 			return new Promise((succ, error) => {
 				uni.request({
 				uni.request({
@@ -403,8 +405,8 @@ module.exports = {
 					data: data,
 					data: data,
 					method: "POST",
 					method: "POST",
 					header: {
 					header: {
-						tokenW: localStorage.getItem("token"),
-						// "tokenP": localStorage.getItem("token"),
+						tokenW: sessionStorage.getItem("token"),
+						// "tokenP": sessionStorage.getItem("token")
 						"Content-Type": "multipart/form-data"
 						"Content-Type": "multipart/form-data"
 					},
 					},
 					success: function(result) {
 					success: function(result) {
@@ -413,13 +415,13 @@ module.exports = {
 							result.data=JSON.parse(decryptData)
 							result.data=JSON.parse(decryptData)
 						}
 						}
 						if(result.data.message=="登录凭证已过去,请重新登录"){
 						if(result.data.message=="登录凭证已过去,请重新登录"){
-							uni.removeStorageSync("tokenW")
-							uni.removeStorageSync("roleId")
-							uni.removeStorageSync("crerenwu")
-							uni.removeStorageSync("uprenwu")
-							uni.removeStorageSync("delerenwu")
-							uni.removeStorageSync("cuirenwu")
-							uni.removeStorageSync("gengrenwu")
+							sessionStorage.removeItem("token")
+							sessionStorage.removeItem("roleId")
+							sessionStorage.removeItem("crerenwu")
+							sessionStorage.removeItem("uprenwu")
+							sessionStorage.removeItem("delerenwu")
+							sessionStorage.removeItem("cuirenwu")
+							sessionStorage.removeItem("gengrenwu")
 							uni.showModal({
 							uni.showModal({
 								title: '提示',
 								title: '提示',
 								content: '用户信息失效,请重新登录!',
 								content: '用户信息失效,请重新登录!',
@@ -434,13 +436,13 @@ module.exports = {
 							});
 							});
 						}
 						}
 						if (result.data.code == 401 && token) {
 						if (result.data.code == 401 && token) {
-							uni.removeStorageSync("tokenW")
-							uni.removeStorageSync("roleId")
-							uni.removeStorageSync("crerenwu")
-							uni.removeStorageSync("uprenwu")
-							uni.removeStorageSync("delerenwu")
-							uni.removeStorageSync("cuirenwu")
-							uni.removeStorageSync("gengrenwu")
+							sessionStorage.removeItem("token")
+							sessionStorage.removeItem("roleId")
+							sessionStorage.removeItem("crerenwu")
+							sessionStorage.removeItem("uprenwu")
+							sessionStorage.removeItem("delerenwu")
+							sessionStorage.removeItem("cuirenwu")
+							sessionStorage.removeItem("gengrenwu")
 	
 	
 							// uni.showModal({
 							// uni.showModal({
 							// 	title: '提示',
 							// 	title: '提示',
@@ -469,8 +471,8 @@ module.exports = {
 					data: data,
 					data: data,
 					method: "POST",
 					method: "POST",
 					header: {
 					header: {
-						tokenW: localStorage.getItem("token"),
-						// "tokenP": localStorage.getItem("token"),
+						tokenW: sessionStorage.getItem("token"),
+						// "tokenP": sessionStorage.getItem("token"),
 						"Content-Type": "multipart/form-data"
 						"Content-Type": "multipart/form-data"
 					},
 					},
 					success: function(result) {
 					success: function(result) {

+ 2 - 2
main.js

@@ -1,8 +1,8 @@
 import App from './App'
 import App from './App'
 import getUrlKey from './utils/getToken.js'
 import getUrlKey from './utils/getToken.js'
 
 
-localStorage.setItem('token',getUrlKey('token'))//
-localStorage.setItem('message',getUrlKey('message'))
+sessionStorage.setItem('token',getUrlKey('token'))//
+sessionStorage.setItem('message',getUrlKey('message'))
 // alert('token'+getUrlKey('token'))
 // alert('token'+getUrlKey('token'))
 // alert('message',getUrlKey('message'))
 // alert('message',getUrlKey('message'))
 
 

+ 1 - 1
pages/404/404.vue

@@ -13,7 +13,7 @@
 			}
 			}
 		},
 		},
 		onLoad() {
 		onLoad() {
-			this.err=uni.getStorageSync("message")
+			this.err=sessionStorage.getItem("message")
 		},
 		},
 		methods: {
 		methods: {
 		}
 		}

+ 2 - 4
pages/index/index.vue

@@ -297,10 +297,10 @@
 				});
 				});
 				that.$Request.postT('/api/sysUser/queryOwn').then(res => {
 				that.$Request.postT('/api/sysUser/queryOwn').then(res => {
 					if (res.code==200) {
 					if (res.code==200) {
-						uni.setStorageSync('roleId', res.data.roleId)
+						sessionStorage.setItem('roleId',res.data.roleId)
 						var roleId=res.data.roleId
 						var roleId=res.data.roleId
 						that.getRole(roleId)
 						that.getRole(roleId)
-						console.log(uni.getStorageSync('roleId'),'数据')
+						console.log(sessionStorage.getItem("roleId"),'数据')
 					} else {
 					} else {
 						uni.showToast({
 						uni.showToast({
 							title: res.message,
 							title: res.message,
@@ -326,8 +326,6 @@
 						this.shouye=res.data[0].state
 						this.shouye=res.data[0].state
 						this.allcuiban=res.data[1].menuLists[0].state
 						this.allcuiban=res.data[1].menuLists[0].state
 						this.acuiban=res.data[1].menuLists[3].state
 						this.acuiban=res.data[1].menuLists[3].state
-						// uni.setStorageSync('roleId', res.data.roleId)
-						console.log(uni.getStorageSync('roleId'),'数据')
 					} else {
 					} else {
 						uni.showToast({
 						uni.showToast({
 							title: res.message,
 							title: res.message,

+ 80 - 43
pages/project/addProject.vue

@@ -12,7 +12,7 @@
 					@select='selectUpload'
 					@select='selectUpload'
 					@delete="deleteHandle"
 					@delete="deleteHandle"
 					:auto-upload='false' 
 					:auto-upload='false' 
-					file-extname='pdf,docx,jpg,png,jpeg' 
+					file-extname='pdf,docx,jpg,png,jpeg,doc,docm,dot,dotm,dotx,xlsx,xls,csv,xlsm,slxb,xlt,xltx' 
 					file-mediatype="all" 
 					file-mediatype="all" 
 					@success='uploadSuccess'	
 					@success='uploadSuccess'	
 					@fail='uploadFail' 
 					@fail='uploadFail' 
@@ -20,11 +20,18 @@
 					v-model='fileList'
 					v-model='fileList'
 				></uni-file-picker>
 				></uni-file-picker>
 			</view>
 			</view>
-			<span style="margin: 20rpx 0 0 20rpx;">支持pdf/word/xlsx格式,单个文件大小不超过5MB</span>
+			<span style="margin: 20rpx 0 0 20rpx;width: 700rpx;">支持pdf,docx,jpg,png,jpeg,doc,docm,dot,dotm,dotx,xlsx,xls,csv,xlsm,slxb,xlt,xltx格式,单个文件大小不超过5MB</span>
 			<view class="proMiao">主办单位/主办人</view>
 			<view class="proMiao">主办单位/主办人</view>
 			<uni-data-picker placeholder="请选择主办单位" popup-title="请选择主办人" :localdata="range" v-model="value"
 			<uni-data-picker placeholder="请选择主办单位" popup-title="请选择主办人" :localdata="range" v-model="value"
 				@change="onchange" @nodeclick="onnodeclick" @popupopened="onpopupopened" @popupclosed="onpopupclosed">
 				@change="onchange" @nodeclick="onnodeclick" @popupopened="onpopupopened" @popupclosed="onpopupclosed">
 			</uni-data-picker>
 			</uni-data-picker>
+			<view class="proINname" style="height: 100%;">
+				   <view class="tag-view" v-for="(value,key) in userListSelect1"  :key="key" @click="clearTagAdmin1(value)">
+						<uni-tag :text="value.parent_value.organize+'/'+value.text" type="primary" ></uni-tag>
+						<!-- {{value.parent_value.organize}}/{{value.text}} -->
+						<uni-icons class="clearBtn"  type="clear" size="15" color="#ccc" />
+					</view>
+			</view>
 			<!-- <uni-data-select class="proINname"
 			<!-- <uni-data-select class="proINname"
 				v-model="value" placeholder="请选择主办单位"
 				v-model="value" placeholder="请选择主办单位"
 				:localdata="range"
 				:localdata="range"
@@ -86,8 +93,22 @@
 				</view>
 				</view>
 			</view> -->
 			</view> -->
 			<view class="proMiao">项目评分人</view>
 			<view class="proMiao">项目评分人</view>
-			<mySelectCheckbox class="proINname" placeholder="请选择项目评分人" v-model="peoplescore" multiple dataKey="label" dataValue="value" :localdata="scorePeople"
-				@change="changeScore"></mySelectCheckbox>
+			<uni-combox class="proINname"
+			  :scorePeople="scorePeople" labelKey="label" valueKey="value"
+			  placeholder="请选择项目评分人"
+			  v-model="peoplescore"
+			  @input="comboxInput"
+			></uni-combox>
+			</uni-forms-item>
+			<!-- <mySelectCheckbox class="proINname" placeholder="请选择项目评分人" v-model="peoplescore" multiple dataKey="label" dataValue="value" :localdata="scorePeople"
+				@change="changeScore"></mySelectCheckbox> -->
+			<view class="proINname" style="height: 100%;">
+				   <view class="tag-view" v-for="(value,key) in scorePeople22"  :key="key" @click="clearTagAdminP(value)">
+						<uni-tag :text="value" type="primary" ></uni-tag>
+						<!-- {{value.parent_value.organize}}/{{value.text}} -->
+						<uni-icons class="clearBtn"  type="clear" size="15" color="#ccc" />
+					</view>
+			</view>
 			<view class="project">
 			<view class="project">
 				<view class="butt quxiao" @click="quxiao">取消</view>
 				<view class="butt quxiao" @click="quxiao">取消</view>
 				<view class="butt queren" @click="addProject">确认创建</view>
 				<view class="butt queren" @click="addProject">确认创建</view>
@@ -110,6 +131,8 @@
 				value: '',
 				value: '',
 				range: [],
 				range: [],
 				userListSelect1:[],
 				userListSelect1:[],
+				zhuban:[],//主办传入值数组
+				zhuValue:[],//主办传入id
 				//主办人
 				//主办人
 				peopleValue:'',
 				peopleValue:'',
 				rangePeople:[],
 				rangePeople:[],
@@ -171,8 +194,11 @@
 			},
 			},
 			onnodeclick(data) {
 			onnodeclick(data) {
 				console.log(data);
 				console.log(data);
-				this.userListSelect1 = data
-				// this.getPeople()
+				if(data.parent_value){//存在父级
+				  let dataId = data.value;
+				  this.userListSelect1.push(data);
+				  this.userListSelect1 = [...new Set(this.userListSelect1)]//es6数组去重
+				}
 			},
 			},
 			onpopupopened(e) {
 			onpopupopened(e) {
 				console.log('popupopened');
 				console.log('popupopened');
@@ -185,15 +211,8 @@
 				var acc=e.detail.value[0].text
 				var acc=e.detail.value[0].text
 				this.getPeople(acc)
 				this.getPeople(acc)
 			},
 			},
-			//协办单位选择
-			changeXie(e){
-				this.xieban=[]
-				this.xieValue=[]
-				console.log('e:', e);
-				e.map(item =>{
-					this.xieban.push(item.label)
-					this.xieValue.push(item.value)
-				})
+			clearTagAdmin1(value){
+				this.userListSelect1 = this.userListSelect1.filter(item => item != value);
 			},
 			},
 			clearTagAdmin(value){
 			clearTagAdmin(value){
 				this.userListSelect = this.userListSelect.filter(item => item != value);
 				this.userListSelect = this.userListSelect.filter(item => item != value);
@@ -217,16 +236,6 @@
 			onchange2(e) {
 			onchange2(e) {
 				console.log('---------onchange:', e);
 				console.log('---------onchange:', e);
 			},
 			},
-			//协办人选择
-			changeXiePeo(e){
-				this.xieban=[]
-				this.xieValue=[]
-				console.log('e:', e);
-				e.map(item =>{
-					this.xieban.push(item.label)
-					this.xieValue.push(item.value)
-				})
-			},
 			//评分人选择
 			//评分人选择
 			changeScore(e){
 			changeScore(e){
 				this.scorePeople22=[]
 				this.scorePeople22=[]
@@ -237,6 +246,23 @@
 					this.scoreValuePeople.push(item.value)
 					this.scoreValuePeople.push(item.value)
 				})
 				})
 			},
 			},
+			// @input	combox输入事件	返回combox值
+			comboxInput(e) {
+				console.log('e:', e);
+			  // this.peoplescore=e
+			  // this.scorePeople22=[]
+			  // this.scoreValuePeople=[]
+			  for(var i=0;i<this.scorePeople.length;i++){
+				  if(e==this.scorePeople[i].value){
+					  this.scorePeople22.push(this.scorePeople[i].label)
+					  this.scoreValuePeople.push(this.scorePeople[i].value)
+				  }
+			  }
+			  console.log(this.scorePeople22)
+			},
+			clearTagAdminP(value){
+				this.scorePeople22 = this.scorePeople22.filter(item => item != value);
+			},
 			//获取单位
 			//获取单位
 			getDanwei(){
 			getDanwei(){
 				this.range=[]
 				this.range=[]
@@ -339,25 +365,36 @@
 			},
 			},
 			//新增项目
 			//新增项目
 			addProject(){
 			addProject(){
-				console.log('协办',this.userListSelect1.parent_value.organize,this.value2,this.userListSelect)
+				console.log('协办',this.userListSelect1,this.value2,this.userListSelect)
 				console.log('评分人',this.scoreValuePeople)
 				console.log('评分人',this.scoreValuePeople)
 				console.log(this.jibie[this.jibieValue].text)
 				console.log(this.jibie[this.jibieValue].text)
-				var xieban=[]
-				var xiebanValue=[]
-				this.userListSelect.map(item =>{
-					xieban.push(item.parent_value.organize)
-					xiebanValue.push(item.value)
+				var zhuban=[]
+				var zhubanValue=[]
+				this.userListSelect1.map(item =>{
+					zhuban.push(item.parent_value.organize)
+					zhubanValue.push(item.value)
 				})
 				})
-				console.log(xieban,xiebanValue)
+				console.log(zhuban,zhubanValue)
+				if(this.userListSelect==[]){
+					var xie=null
+					var xieValue=null
+				}else {
+					var xieban=[]
+					var xiebanValue=[]
+					this.userListSelect.map(item =>{
+						xieban.push(item.parent_value.organize)
+						xiebanValue.push(item.value)
+					})
+					console.log(xieban,xiebanValue)
+					var xie=xieban.join(",")
+					var xieValue=xiebanValue.join(",")
+				}
+				
 				let that = this
 				let that = this
 				if (!that.pName) {
 				if (!that.pName) {
 					that.$queue.showToast("请输入项目标题");
 					that.$queue.showToast("请输入项目标题");
 				}else if (!that.projectContent) {
 				}else if (!that.projectContent) {
 					that.$queue.showToast("请输入项目描述");
 					that.$queue.showToast("请输入项目描述");
-				} else if (!that.value) {
-					that.$queue.showToast("请选择主办单位");
-				} else if (!that.value2) {
-					that.$queue.showToast("请选择协办单位");
 				}else {
 				}else {
 					uni.showLoading({
 					uni.showLoading({
 						title: '加载中',
 						title: '加载中',
@@ -369,10 +406,10 @@
 						"projectLevel": that.jibie[that.jibieValue].text,    // 项目等级
 						"projectLevel": that.jibie[that.jibieValue].text,    // 项目等级
 						"projectContent": that.projectContent,    // 项目描述
 						"projectContent": that.projectContent,    // 项目描述
 						"fileUrl": that.fileList22,   // 附件
 						"fileUrl": that.fileList22,   // 附件
-						"organize": that.userListSelect1.parent_value.organize,   // 主办单位-单
-						"sposoner": that.value,   // 主办人ID-单
-						"coOrganize": xieban.join(","),   // 协办单位-多选
-						"coSposoner": xiebanValue.join(","),    // 协办人ID-多选
+						"organize": zhuban.join(","),   // 主办单位-多
+						"sposoner": zhubanValue.join(","),   // 主办人ID-多
+						"coOrganize": xie,   // 协办单位-多选
+						"coSposoner": xieValue,    // 协办人ID-多选
 						"scorer": that.scoreValuePeople.join(",")   // 评分人ID-多选
 						"scorer": that.scoreValuePeople.join(",")   // 评分人ID-多选
 					}
 					}
 					that.$Request.postJson('/api/sysProject/add',data).then(res => {
 					that.$Request.postJson('/api/sysProject/add',data).then(res => {
@@ -434,7 +471,7 @@
 				    method: "post",
 				    method: "post",
 				    url: this.config('APIHOST1') + "/api/sysFile/upload",
 				    url: this.config('APIHOST1') + "/api/sysFile/upload",
 				    headers: {
 				    headers: {
-						tokenW: localStorage.getItem("token"),
+						tokenW: sessionStorage.getItem("token"),
 						"Content-Type": "multipart/form-data"
 						"Content-Type": "multipart/form-data"
 				    },
 				    },
 				    data: data,
 				    data: data,
@@ -447,8 +484,8 @@
 					this.fileList22=this.fileList2.join(",")
 					this.fileList22=this.fileList2.join(",")
 					// console.log(this.fileList2.join(","))
 					// console.log(this.fileList2.join(","))
 				  } else if(res.message=="登录凭证已过去,请重新登录"){
 				  } else if(res.message=="登录凭证已过去,请重新登录"){
-					uni.removeStorageSync("tokenW")
-					uni.removeStorageSync("roleId")
+					sessionStorage.removeItem("token")
+					sessionStorage.removeItem("roleId")
 					uni.showModal({
 					uni.showModal({
 						title: '提示',
 						title: '提示',
 						content: '用户信息失效,请重新登录!',
 						content: '用户信息失效,请重新登录!',

+ 440 - 441
pages/project/addRenwu.vue

@@ -1,449 +1,448 @@
-<template>
-	<view class="content">
-		<view class="param">
-			<view class="proMiao">任务名称</view>
-			<input class="proINname" v-model="renwuName" placeholder="请输入任务名称"/>
-			<view class="proMiao">评分标准</view>
-			<textarea class="proINname proIMi" v-model="scoreStandard" placeholder="请输入评分标准"/>
-			<view class="proMiao">附件</view>
-			<view class="upload-img">
-				<uni-file-picker limit="3" 
-					@select='selectUpload' 
-					@delete="deleteHandle"
-					:auto-upload='false' 
-					file-extname='pdf,docx,jpg,png,jpeg' 
-					file-mediatype="all" 
-					@success='uploadSuccess'	
-					@fail='uploadFail' 
-					:list-styles='listStyles' 
-					v-model='fileList'
-				></uni-file-picker>
-			</view>
-			<span style="margin: 20rpx 0 0 20rpx;">支持pdf/word/xlsx格式,单个文件大小不超过5MB</span>
-			<view class="proMiao">评分上限</view>
-			<input class="proINname" placeholder="请输入评分上限" type="number" v-model="scoreLimit"/>
-			<view class="proMiao">权重</view>
-			<input class="proINname" placeholder="请输入权重" type="digit" v-model="weight"/>
-			<view class="proMiao">任务负责人</view>
-			<view @click="toggle()">
-				<view class="proINname" v-if="peopleValue==''">请选择任务负责人</view>
-				<view class="proINname" v-else>{{peopleValue}}</view>
-				<!-- <input class="proINname" v-model="peopleValue" placeholder="请选择任务负责人"/> -->
-				<!-- <uni-data-select class="proINname" :disabled="true"
-					v-model="peopleValue" placeholder="请选择主办人"
-					:localdata="rangePeople"
-				></uni-data-select> -->
-			</view>
-			
-			<view class="proMiao">提醒时间</view>
-			<uni-datetime-picker class="proINname" type="datetime" v-model="remindTime" @change="changeLog" />
-			<view class="proMiao">预警时间</view>
-			<uni-datetime-picker class="proINname" type="datetime" v-model="warnTime" @change="changeLog" />
-			<view class="proMiao">任务周期</view>
-			<uni-datetime-picker class="proINname" v-model="datetimerange" type="datetimerange" rangeSeparator="至" />
-			<!-- 操作键 -->
-			<view class="project">
-				<view class="butt quxiao" @click="quxiao">取消</view>
-				<view class="butt queren" @click="addRenwu">确认创建</view>
-			</view>
-			<view style="width: 100%;height: 60rpx;"></view>
-			
-			<!-- 任务负责人弹出框-->
-			<uni-popup ref="popup" background-color="#fff">
-				
-					<view class="popup-content">
-						<view class="popup-title">
-							<view @click="quPopup">取消</view>
-							<view>选择任务负责人</view>
-							<view style="color: rgba(0, 97, 255, 1);" @click="selectPeo">确定</view>
-						</view>
-						<scroll-view scroll-y="true" class="scroll_view_style">
-							<view class="popup-list">
-								<radio-group @change="radioChange" v-for="(item,index) in people" :key="index">
-								<view class="l-line"></view>
-								<view class="l-kuang">
-									<view class="l-circle"></view>
-									<view style="margin-left: 20rpx;width: 320px;">
-										<view style="font-size: 28rpx;">{{item.userName}}</view>
-										<view style="font-size: 24rpx;">{{item.department}}</view>
-									</view>
-									<label class="l-label">
-										<view>
-											<radio :id="item.userName" :value="item.userName" :checked="index==peopleCruuent"></radio>
-										</view>
-									</label>
-								</view>
-								</radio-group>
-							</view>
-						</scroll-view>
-					</view>
-				
-			
-			</uni-popup>
-		</view>
+<template>
+	<view class="content">
+		<view class="param">
+			<view class="proMiao">任务名称</view>
+			<input class="proINname" v-model="renwuName" placeholder="请输入任务名称"/>
+			<view class="proMiao">评分标准</view>
+			<textarea class="proINname proIMi" v-model="scoreStandard" placeholder="请输入评分标准"/>
+			<view class="proMiao">附件</view>
+			<view class="upload-img">
+				<uni-file-picker limit="3" 
+					@select='selectUpload' 
+					@delete="deleteHandle"
+					:auto-upload='false' 
+					file-extname='pdf,docx,jpg,png,jpeg,doc,docm,dot,dotm,dotx,xlsx,xls,csv,xlsm,slxb,xlt,xltx' 
+					file-mediatype="all" 
+					@success='uploadSuccess'	
+					@fail='uploadFail' 
+					:list-styles='listStyles' 
+					v-model='fileList'
+				></uni-file-picker>
+			</view>
+			<span style="margin: 20rpx 0 0 20rpx;">支持pdf,docx,jpg,png,jpeg,doc,docm,dot,dotm,dotx,xlsx,xls,csv,xlsm,slxb,xlt,xltx格式,单个文件大小不超过5MB</span>
+			<view class="proMiao">评分上限</view>
+			<input class="proINname" placeholder="请输入评分上限" type="number" v-model="scoreLimit"/>
+			<view class="proMiao">权重</view>
+			<input class="proINname" placeholder="请输入权重" type="digit" v-model="weight"/>
+			<view class="proMiao">任务负责人</view>
+			<view @click="toggle()">
+				<view class="proINname" v-if="peopleValue==''">请选择任务负责人</view>
+				<view class="proINname" v-else>{{peopleValue}}</view>
+				<!-- <input class="proINname" v-model="peopleValue" placeholder="请选择任务负责人"/> -->
+				<!-- <uni-data-select class="proINname" :disabled="true"
+					v-model="peopleValue" placeholder="请选择主办人"
+					:localdata="rangePeople"
+				></uni-data-select> -->
+			</view>
+			
+			<view class="proMiao">提醒时间</view>
+			<uni-datetime-picker class="proINname" type="datetime" v-model="remindTime" @change="changeLog" />
+			<view class="proMiao">预警时间</view>
+			<uni-datetime-picker class="proINname" type="datetime" v-model="warnTime" @change="changeLog" />
+			<view class="proMiao">任务周期</view>
+			<uni-datetime-picker class="proINname" v-model="datetimerange" type="datetimerange" rangeSeparator="至" />
+			<!-- 操作键 -->
+			<view class="project">
+				<view class="butt quxiao" @click="quxiao">取消</view>
+				<view class="butt queren" @click="addRenwu">确认创建</view>
+			</view>
+			<view style="width: 100%;height: 60rpx;"></view>
+			
+			<!-- 任务负责人弹出框-->
+			<uni-popup ref="popup" background-color="#fff">
+				
+					<view class="popup-content">
+						<view class="popup-title">
+							<view @click="quPopup">取消</view>
+							<view>选择任务负责人</view>
+							<view style="color: rgba(0, 97, 255, 1);" @click="selectPeo">确定</view>
+						</view>
+						<scroll-view scroll-y="true" class="scroll_view_style">
+							<view class="popup-list">
+								<radio-group @change="radioChange" v-for="(item,index) in people" :key="index">
+								<view class="l-line"></view>
+								<view class="l-kuang">
+									<view class="l-circle"></view>
+									<view style="margin-left: 20rpx;width: 320px;">
+										<view style="font-size: 28rpx;">{{item.userName}}</view>
+										<view style="font-size: 24rpx;">{{item.department}}</view>
+									</view>
+									<label class="l-label">
+										<view>
+											<radio :id="item.userName" :value="item.userName" :checked="index==peopleCruuent"></radio>
+										</view>
+									</label>
+								</view>
+								</radio-group>
+							</view>
+						</scroll-view>
+					</view>
+				
+			
+			</uni-popup>
+		</view>
 	</view>
 	</view>
 </template>
 </template>
 
 
-<script>
-	import configdata from '@/common/config.js'
-	export default {
-		data() {
-			return {
-				renwuName:'',//任务名称
-				projectId:'',//项目id
-				scoreStandard:'',//评价标准
-				scoreLimit:'',//评分上限
-				weight:'',//权重
-				remindTime: '',//提醒时间
-				warnTime:'',//预警时间
-				datetimerange: [],
-				people:[],
-				peopleCruuent:0,
-				peopleValue:'',
-				// 附件
-				fileList: [],
-				fileList2: [],
-				fileList22:'',
-				listStyles: {
-					"borderStyle": {
-						"width": "0", // 边框宽度
-					},
-					"border": false, // 是否显示边框
-					"dividline": false
-				},
-				
-				page:1,
-				size:10,
-				totalCount:0,
-			}
-		},
-		onLoad(option) {
-			this.projectId=option.proId
-			this.people=JSON.parse(decodeURIComponent(option.people))
-		},
-		methods: {
-			// 任务负责人弹框
-			toggle() {
-				console.log('dd')
-				// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
-				this.$refs.popup.open('bottom')
-				// this.getPeople()
-			},
-			//取消弹框
-			quPopup(){
-				this.$refs.popup.close()
-			},
-			//确定负责人
-			selectPeo(){
-				this.$refs.popup.close()
-				this.peopleValue=this.people[this.peopleCruuent].userName
-			},
-			// 选择负责人
-			radioChange: function(evt) {
-				console.log(evt)
-				for (let i = 0; i < this.people.length; i++) {
-					if (this.people[i].userName === evt.detail.value) {
-						this.peopleCruuent = i;
-						this.peopleValue=this.people[this.peopleCruuent].userName
-						break;
-					}
-				}
-			},
-			//选择负责人
-			getPeople(){
-				this.people=[]
-				uni.showLoading({
-					title: '加载中',
-					mask: true, // 是否显示透明蒙层,防止触摸穿透
-				});
-				this.$Request.postJson('/api/sysProject/queryCoUsers',{}).then(res => {
-					if (res.code==200) {
-						// var lianji=[]
-						// for(var i=0;i<res.data.length;i++){
-						// 	if(res.data[i].organize==acc){
-						// 		lianji=res.data[i].userList
-						// 	}
-						// }
-						// console.log(lianji,'评分')
-						// this.scorePeople =lianji.map(item =>{
-						// 	return {
-						// 		value: item.id,
-						// 		label: item.userName,
-						// 	}
-						// })
-						
-						if (this.page == 1) {
-							console.log('哈')
-							this.people = res.data.rows
-						} else {
-							this.people = this.people.concat(res.data.rows)
-						}
-						console.log(this.people,'人')
-					}else{
-						var ii=JSON.stringify(res)
-						console.log(res,res.data)
-						console.log(JSON.parse(res))
-						console.log(JSON.parse(ii))
-					}
-					uni.hideLoading();
-				});
-			},
-			//取消
-			quxiao(){
-				uni.redirectTo({
-					url:'/pages/project/projectChange'
-				})
-			},
-			//新增任务
-			addRenwu(){
-				let that = this
-				if (!that.renwuName) {
-					that.$queue.showToast("请输入任务名称");
-				}else if (!that.scoreStandard) {
-					that.$queue.showToast("请输入评分标准");
-				}else if (!that.scoreLimit) {
-					that.$queue.showToast("请输入评分上限");
-				}else if (!that.weight) {
-					that.$queue.showToast("请输入权重");
-				}else if (!that.remindTime) {
-					that.$queue.showToast("请选择提醒时间");
-				}else if (!that.warnTime) {
-					that.$queue.showToast("请选择预警时间");
-				}else if (!that.datetimerange) {
-					that.$queue.showToast("请选择周期");
-				}else {
-					uni.showLoading({
-						title: '加载中',
-						mask: true, // 是否显示透明蒙层,防止触摸穿透
-					});
-					var data={
-						"taskName": that.renwuName,   // 任务名称
-						"projectId": that.projectId,   // 项目ID
-						"scoreStandard": that.scoreStandard,   // 评价标准
-						"fileUrl": that.fileList22,  // 附件
-						"scoreLimit": that.scoreLimit,   // 评分上限
-						"weight": that.weight,   // 权重
-						"remindTime": that.remindTime,   // 提醒时间
-						"warnTime": that.warnTime,    // 预警时间
-						"header": that.people[that.peopleCruuent].id,    // 负责人
-						"startTime": that.datetimerange[0],   // 周期-起始时间
-						"endTime": that.datetimerange[1]    // 周期-结束时间
-					}
-					that.$Request.postJson('/api/sysTask/add',data).then(res => {
-						if (res.code==200) {
-							uni.showToast({
-								title: '添加成功',
-								icon: 'none',
-								duration:800
-							});
-							uni.hideLoading()
-											
-							setTimeout(function() {
-								uni.switchTab({
-									url:'/pages/project/index'
-								})
-							}, 1000)
-						} else {
-							uni.hideLoading();
-							uni.showToast({
-								title: res.message,
-								icon: 'none',
-								duration:800
-							});
-						}
-					});
-				}
-			},
-			// 上传附件
-			uploadSuccess(e) {
-			console.log('上传成功', e)
-			},
-			uploadFail(e) {
-				console.log('上传失败:', e)
-			},
-			//删除文件
-			deleteHandle(index){
-				console.log(index)
-				this.fileList2.splice(index.index,1)
-				// console.log(this.fileList2)
-				this.fileList22=this.fileList2.join(",")
-			},
-			async selectUpload(e) {
-				console.log('上传:', e)
-				 let data = new FormData();
-				  data.set("file", e.tempFiles[0].file);
-				  let res = await this.$axios({
-				    method: "post",
-				    url: this.config('APIHOST1') + "/api/sysFile/upload",
-				    headers: {
-						tokenW: localStorage.getItem("token"),
-						"Content-Type": "multipart/form-data"
-				    },
-				    data: data,
-				  });
-					// return res
-				  console.log(res, "图片上传成功");
-				  if (res.data.code == 200) {
-					console.log(this.fileList)
-				    this.fileList2.push(res.data.data);
-					this.fileList22=this.fileList2.join(",")
-					// console.log(this.fileList2.join(","))
-				  } else if(res.message=="登录凭证已过去,请重新登录"){
-					uni.removeStorageSync("tokenW")
-					uni.removeStorageSync("roleId")
-					uni.showModal({
-						title: '提示',
-						content: '用户信息失效,请重新登录!',
-						showCancel: false, // 是否显示取消按钮,默认为 true // 是否显示取消按钮,默认为 true
-						success: function(res) {
-							if (res.confirm) {
-							}
-						}
-					});
-				   }else {
-			    		uni.showToast({
-							title: res.message,
-							icon: 'none',
-							duration:800
-						});
-				    }
-			},
-			config: function (name) {
-				var info = null
-				if (name) {
-					var name2 = name.split('.') //字符分割
-					if (name2.length > 1) {
-						info = configdata[name2[0]][name2[1]] || null
-					} else {
-						info = configdata[name] || null
-					}
-					if (info == null) {
-						let web_config = cache.get('web_config')
-						if (web_config) {
-							if (name2.length > 1) {
-								info = web_config[name2[0]][name2[1]] || null
-							} else {
-								info = web_config[name] || null
-							}
-						}
-					}
-				}
-				return info
-			},
-		}
+<script>
+	import configdata from '@/common/config.js'
+	export default {
+		data() {
+			return {
+				renwuName:'',//任务名称
+				projectId:'',//项目id
+				scoreStandard:'',//评价标准
+				scoreLimit:'',//评分上限
+				weight:'',//权重
+				remindTime: '',//提醒时间
+				warnTime:'',//预警时间
+				datetimerange: [],
+				people:[],
+				peopleCruuent:0,
+				peopleValue:'',
+				// 附件
+				fileList: [],
+				fileList2: [],
+				fileList22:'',
+				listStyles: {
+					"borderStyle": {
+						"width": "0", // 边框宽度
+					},
+					"border": false, // 是否显示边框
+					"dividline": false
+				},
+				
+				page:1,
+				size:10,
+				totalCount:0,
+			}
+		},
+		onLoad(option) {
+			this.projectId=option.proId
+			this.people=JSON.parse(decodeURIComponent(option.people))
+		},
+		methods: {
+			// 任务负责人弹框
+			toggle() {
+				console.log('dd')
+				// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+				this.$refs.popup.open('bottom')
+				// this.getPeople()
+			},
+			//取消弹框
+			quPopup(){
+				this.$refs.popup.close()
+			},
+			//确定负责人
+			selectPeo(){
+				this.$refs.popup.close()
+				this.peopleValue=this.people[this.peopleCruuent].userName
+			},
+			// 选择负责人
+			radioChange: function(evt) {
+				console.log(evt)
+				for (let i = 0; i < this.people.length; i++) {
+					if (this.people[i].userName === evt.detail.value) {
+						this.peopleCruuent = i;
+						this.peopleValue=this.people[this.peopleCruuent].userName
+						break;
+					}
+				}
+			},
+			//选择负责人
+			getPeople(){
+				this.people=[]
+				uni.showLoading({
+					title: '加载中',
+					mask: true, // 是否显示透明蒙层,防止触摸穿透
+				});
+				this.$Request.postJson('/api/sysProject/queryCoUsers',{}).then(res => {
+					if (res.code==200) {
+						// var lianji=[]
+						// for(var i=0;i<res.data.length;i++){
+						// 	if(res.data[i].organize==acc){
+						// 		lianji=res.data[i].userList
+						// 	}
+						// }
+						// console.log(lianji,'评分')
+						// this.scorePeople =lianji.map(item =>{
+						// 	return {
+						// 		value: item.id,
+						// 		label: item.userName,
+						// 	}
+						// })
+						
+						if (this.page == 1) {
+							console.log('哈')
+							this.people = res.data.rows
+						} else {
+							this.people = this.people.concat(res.data.rows)
+						}
+						console.log(this.people,'人')
+					}else{
+						var ii=JSON.stringify(res)
+						console.log(res,res.data)
+						console.log(JSON.parse(res))
+						console.log(JSON.parse(ii))
+					}
+					uni.hideLoading();
+				});
+			},
+			//取消
+			quxiao(){
+				uni.redirectTo({
+					url:'/pages/project/projectChange'
+				})
+			},
+			//新增任务
+			addRenwu(){
+				let that = this
+				if (!that.renwuName) {
+					that.$queue.showToast("请输入任务名称");
+				}else if (!that.scoreStandard) {
+					that.$queue.showToast("请输入评分标准");
+				}else if (!that.scoreLimit) {
+					that.$queue.showToast("请输入评分上限");
+				}else if (!that.weight) {
+					that.$queue.showToast("请输入权重");
+				}else if (!that.remindTime) {
+					that.$queue.showToast("请选择提醒时间");
+				}else if (!that.warnTime) {
+					that.$queue.showToast("请选择预警时间");
+				}else if (!that.datetimerange) {
+					that.$queue.showToast("请选择周期");
+				}else {
+					uni.showLoading({
+						title: '加载中',
+						mask: true, // 是否显示透明蒙层,防止触摸穿透
+					});
+					var data={
+						"taskName": that.renwuName,   // 任务名称
+						"projectId": that.projectId,   // 项目ID
+						"scoreStandard": that.scoreStandard,   // 评价标准
+						"fileUrl": that.fileList22,  // 附件
+						"scoreLimit": that.scoreLimit,   // 评分上限
+						"weight": that.weight,   // 权重
+						"remindTime": that.remindTime,   // 提醒时间
+						"warnTime": that.warnTime,    // 预警时间
+						"header": that.people[that.peopleCruuent].id,    // 负责人
+						"startTime": that.datetimerange[0],   // 周期-起始时间
+						"endTime": that.datetimerange[1]    // 周期-结束时间
+					}
+					that.$Request.postJson('/api/sysTask/add',data).then(res => {
+						if (res.code==200) {
+							uni.showToast({
+								title: '添加成功',
+								icon: 'none',
+								duration:800
+							});
+							uni.hideLoading()
+											
+							setTimeout(function() {
+								uni.switchTab({
+									url:'/pages/project/index'
+								})
+							}, 1000)
+						} else {
+							uni.hideLoading();
+							uni.showToast({
+								title: res.message,
+								icon: 'none',
+								duration:800
+							});
+						}
+					});
+				}
+			},
+			// 上传附件
+			uploadSuccess(e) {
+			console.log('上传成功', e)
+			},
+			uploadFail(e) {
+				console.log('上传失败:', e)
+			},
+			//删除文件
+			deleteHandle(index){
+				console.log(index)
+				this.fileList2.splice(index.index,1)
+				// console.log(this.fileList2)
+				this.fileList22=this.fileList2.join(",")
+			},
+			async selectUpload(e) {
+				console.log('上传:', e)
+				 let data = new FormData();
+				  data.set("file", e.tempFiles[0].file);
+				  let res = await this.$axios({
+				    method: "post",
+				    url: this.config('APIHOST1') + "/api/sysFile/upload",
+				    headers: {
+						tokenW: sessionStorage.getItem("token"),
+						"Content-Type": "multipart/form-data"
+				    },
+				    data: data,
+				  });
+					// return res
+				  console.log(res, "图片上传成功");
+				  if (res.data.code == 200) {
+					console.log(this.fileList)
+				    this.fileList2.push(res.data.data);
+					this.fileList22=this.fileList2.join(",")
+					// console.log(this.fileList2.join(","))
+				  } else if(res.message=="登录凭证已过去,请重新登录"){
+					sessionStorage.removeItem("token")
					sessionStorage.removeItem("roleId")
+					uni.showModal({
+						title: '提示',
+						content: '用户信息失效,请重新登录!',
+						showCancel: false, // 是否显示取消按钮,默认为 true // 是否显示取消按钮,默认为 true
+						success: function(res) {
+							if (res.confirm) {
+							}
+						}
+					});
+				   }else {
+			    		uni.showToast({
+							title: res.message,
+							icon: 'none',
+							duration:800
+						});
+				    }
+			},
+			config: function (name) {
+				var info = null
+				if (name) {
+					var name2 = name.split('.') //字符分割
+					if (name2.length > 1) {
+						info = configdata[name2[0]][name2[1]] || null
+					} else {
+						info = configdata[name] || null
+					}
+					if (info == null) {
+						let web_config = cache.get('web_config')
+						if (web_config) {
+							if (name2.length > 1) {
+								info = web_config[name2[0]][name2[1]] || null
+							} else {
+								info = web_config[name] || null
+							}
+						}
+					}
+				}
+				return info
+			},
+		}
 	}
 	}
 </script>
 </script>
 
 
-<style>
-	.content {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-	}
-	.param{
-		margin: 20rpx 0 0 0;
-		width: 100%;
-		background-color: rgba(255, 255, 255, 1);
-		font-size: 28rpx;
-		font-weight: 400;
-		line-height: 41rpx;
-		color: rgba(0, 0, 0, 1);
-	}
-	.proMiao{
-		margin: 31rpx 0 0 20rpx;
-	}
-	/* 上传附件 */
-	.upload-img{
-		/* margin: 25rpx 0 0 21rpx;
-		width: 200rpx;
-		height: 80rpx;
-		opacity: 1;
-		border-radius: 13rpx;
-		background: rgba(0, 97, 255, 0.1);
-		
-		border: 1rpx solid rgba(0, 97, 255, 1); */
-	}
-	.proINname{
-		margin: 25rpx 0 0 21rpx;
-		width: 709rpx;
-		height: 90rpx;
-		border-radius: 13rpx;
-		background: rgba(245, 248, 252, 1);
-		border: 1rpx solid rgba(229, 229, 229, 1);
-		font-size: 28rpx;
-		line-height: 90rpx;
-		/* color: rgba(179, 179, 179, 1); */
-	}
-	.proIMi{
-		height: 315rpx;
-	}
-	/* 操作键 */
-	.project{
-		display: flex;
-		margin: 61rpx 0 0 0;
-		justify-content: space-evenly;
-	}
-	.butt{
-		width: 330rpx;
-		height: 90rpx;
-		border-radius: 117rpx;
-		font-size: 32rpx;
-		line-height: 90rpx;
-		text-align: center;
-	}
-	.quxiao{
-		border: 1rpx solid rgba(0, 97, 255, 1);
-		color: rgba(0, 97, 255, 1);
-	}
-	.queren{
-		background: rgba(0, 97, 255, 1);
-		color: rgba(255, 255, 255, 1);
-	}
-	/* 任务负责人弹出框 */
-	.popup-content{
-		height: 452px;
-		overflow-x: hidden;
-		.scroll_view_style{
-			height: 100%;
-		}
-	}
-	.popup-title{
-		display: flex;
-		width: 100%;
-		height: 104rpx;
-		font-size: 32rpx;
-		line-height: 104rpx;
-		justify-content: space-around;
-		color: rgba(0, 0, 0, 1);
-	}
-	.l-line{
-		width: 100%;
-		border: 1rpx solid rgba(230, 230, 230, 1);
-	}
-	.l-kuang{
-		margin: 40rpx 0 0 20rpx;
-		display: flex;
-	}
-	.l-circle{
-		width: 80rpx;
-		height: 80rpx;
-		border-radius: 50%;
-		background-color:rgba(204, 204, 204, 1);
-	}
-	.l-label1{
-		width: 50rpx;
-		height: 50rpx;
-		opacity: 1;
-		border-radius: 50%;
-		background-color: rgba(0, 97, 255, 1);
-	}
-	.l-label{
-		/* margin-left: 404rpx; */
-		/* width: 50rpx;
-		height: 50rpx;
-		opacity: 1;
-		border-radius: 50%;
-		border: 1rpx solid rgba(166, 166, 166, 1); */
+<style>
+	.content {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+	}
+	.param{
+		margin: 20rpx 0 0 0;
+		width: 100%;
+		background-color: rgba(255, 255, 255, 1);
+		font-size: 28rpx;
+		font-weight: 400;
+		line-height: 41rpx;
+		color: rgba(0, 0, 0, 1);
+	}
+	.proMiao{
+		margin: 31rpx 0 0 20rpx;
+	}
+	/* 上传附件 */
+	.upload-img{
+		/* margin: 25rpx 0 0 21rpx;
+		width: 200rpx;
+		height: 80rpx;
+		opacity: 1;
+		border-radius: 13rpx;
+		background: rgba(0, 97, 255, 0.1);
+		
+		border: 1rpx solid rgba(0, 97, 255, 1); */
+	}
+	.proINname{
+		margin: 25rpx 0 0 21rpx;
+		width: 709rpx;
+		height: 90rpx;
+		border-radius: 13rpx;
+		background: rgba(245, 248, 252, 1);
+		border: 1rpx solid rgba(229, 229, 229, 1);
+		font-size: 28rpx;
+		line-height: 90rpx;
+		/* color: rgba(179, 179, 179, 1); */
+	}
+	.proIMi{
+		height: 315rpx;
+	}
+	/* 操作键 */
+	.project{
+		display: flex;
+		margin: 61rpx 0 0 0;
+		justify-content: space-evenly;
+	}
+	.butt{
+		width: 330rpx;
+		height: 90rpx;
+		border-radius: 117rpx;
+		font-size: 32rpx;
+		line-height: 90rpx;
+		text-align: center;
+	}
+	.quxiao{
+		border: 1rpx solid rgba(0, 97, 255, 1);
+		color: rgba(0, 97, 255, 1);
+	}
+	.queren{
+		background: rgba(0, 97, 255, 1);
+		color: rgba(255, 255, 255, 1);
+	}
+	/* 任务负责人弹出框 */
+	.popup-content{
+		height: 452px;
+		overflow-x: hidden;
+		.scroll_view_style{
+			height: 100%;
+		}
+	}
+	.popup-title{
+		display: flex;
+		width: 100%;
+		height: 104rpx;
+		font-size: 32rpx;
+		line-height: 104rpx;
+		justify-content: space-around;
+		color: rgba(0, 0, 0, 1);
+	}
+	.l-line{
+		width: 100%;
+		border: 1rpx solid rgba(230, 230, 230, 1);
+	}
+	.l-kuang{
+		margin: 40rpx 0 0 20rpx;
+		display: flex;
+	}
+	.l-circle{
+		width: 80rpx;
+		height: 80rpx;
+		border-radius: 50%;
+		background-color:rgba(204, 204, 204, 1);
+	}
+	.l-label1{
+		width: 50rpx;
+		height: 50rpx;
+		opacity: 1;
+		border-radius: 50%;
+		background-color: rgba(0, 97, 255, 1);
+	}
+	.l-label{
+		/* margin-left: 404rpx; */
+		/* width: 50rpx;
+		height: 50rpx;
+		opacity: 1;
+		border-radius: 50%;
+		border: 1rpx solid rgba(166, 166, 166, 1); */
 	}
 	}
 </style>
 </style>

+ 439 - 440
pages/project/changeRenwu.vue

@@ -1,448 +1,447 @@
-<template>
-	<view class="content">
-		<view class="param">
-			<view class="proMiao">任务名称</view>
-			<input class="proINname" v-model="data.taskName" placeholder="请输入任务名称"/>
-			<view class="proMiao">评分标准</view>
-			<textarea class="proINname proIMi" v-model="data.scoreStandard" placeholder="请输入评分标准"/>
-			<view class="proMiao">附件</view>
-			<view class="upload-img">
-				<uni-file-picker limit="3" 
-					@select='selectUpload' 
-					@delete="deleteHandle"
-					:auto-upload='false' 
-					file-extname='pdf,docx,jpg,png,jpeg' 
-					file-mediatype="all" 
-					@success='uploadSuccess'	
-					@fail='uploadFail' 
-					:list-styles='listStyles' 
-					v-model='fileList2'
-				></uni-file-picker>
-			</view>
-			<span style="margin: 20rpx 0 0 20rpx;">支持pdf/word/xlsx格式,单个文件大小不超过5MB</span>
-			<view class="proMiao">评分上限</view>
-			<input class="proINname" placeholder="请输入评分上限" type="number" v-model="data.scoreLimit"/>
-			<view class="proMiao">权重</view>
-			<input class="proINname" placeholder="请输入权重" type="digit" v-model="data.weight"/>
-			<view class="proMiao">任务负责人</view>
-			<view @click="toggle()">
-				<view class="proINname" v-if="peopleValue==''">请选择任务负责人</view>
-				<view class="proINname" v-else>{{peopleValue}}</view>
-				<!-- <uni-data-select class="proINname" :disabled="true"
-					v-model="peopleValue" placeholder="请选择主办人"
-					:localdata="rangePeople"
-				></uni-data-select> -->
-			</view>
-			
-			<view class="proMiao">提醒时间</view>
-			<uni-datetime-picker class="proINname" type="datetime" v-model="data.remindTime" @change="changeLog" />
-			<view class="proMiao">预警时间</view>
-			<uni-datetime-picker class="proINname" type="datetime" v-model="data.warnTime" @change="changeLog" />
-			<view class="proMiao">任务周期</view>
-			<uni-datetime-picker class="proINname" v-model="datetimerange" type="datetimerange" rangeSeparator="至" />
-			<!-- 操作键 -->
-			<view class="project">
-				<view class="butt queren" @click="updateRen">保存</view>
-			</view>
-			<view style="width: 100%;height: 60rpx;"></view>
-			
-			<!-- 任务负责人弹出框-->
-			<uni-popup ref="popup" background-color="#fff">
-				<view class="popup-content">
-					<view class="popup-title">
-						<view @click="quPopup">取消</view>
-						<view>选择任务负责人</view>
-						<view style="color: rgba(0, 97, 255, 1);" @click="selectPeo">确定</view>
-					</view>
-					<scroll-view scroll-y="true" class="scroll_view_style">
-						<view class="popup-list">
-							<radio-group @change="radioChange" v-for="(item,index) in people" :key="index">
-							<view class="l-line"></view>
-							<view class="l-kuang">
-								<view class="l-circle"></view>
-								<view style="margin-left: 20rpx;width: 320px;">
-									<view style="font-size: 28rpx;">{{item.userName}}</view>
-									<view style="font-size: 24rpx;">{{item.department}}</view>
-								</view>
-								<label class="l-label">
-									<view>
-										<radio :id="item.userName" :value="item.userName" :checked="index==peopleCruuent"></radio>
-									</view>
-								</label>
-								
-							</view>
-							</radio-group>
-						</view>
-					</scroll-view>
-				</view>
-			</uni-popup>
-		</view>
+<template>
+	<view class="content">
+		<view class="param">
+			<view class="proMiao">任务名称</view>
+			<input class="proINname" v-model="data.taskName" placeholder="请输入任务名称"/>
+			<view class="proMiao">评分标准</view>
+			<textarea class="proINname proIMi" v-model="data.scoreStandard" placeholder="请输入评分标准"/>
+			<view class="proMiao">附件</view>
+			<view class="upload-img">
+				<uni-file-picker limit="3" 
+					@select='selectUpload' 
+					@delete="deleteHandle"
+					:auto-upload='false' 
+					file-extname='pdf,docx,jpg,png,jpeg,doc,docm,dot,dotm,dotx,xlsx,xls,csv,xlsm,slxb,xlt,xltx' 
+					file-mediatype="all" 
+					@success='uploadSuccess'	
+					@fail='uploadFail' 
+					:list-styles='listStyles' 
+					v-model='fileList2'
+				></uni-file-picker>
+			</view>
+			<span style="margin: 20rpx 0 0 20rpx;">支持pdf,docx,jpg,png,jpeg,doc,docm,dot,dotm,dotx,xlsx,xls,csv,xlsm,slxb,xlt,xltx格式,单个文件大小不超过5MB</span>
+			<view class="proMiao">评分上限</view>
+			<input class="proINname" placeholder="请输入评分上限" type="number" v-model="data.scoreLimit"/>
+			<view class="proMiao">权重</view>
+			<input class="proINname" placeholder="请输入权重" type="digit" v-model="data.weight"/>
+			<view class="proMiao">任务负责人</view>
+			<view @click="toggle()">
+				<view class="proINname" v-if="peopleValue==''">请选择任务负责人</view>
+				<view class="proINname" v-else>{{peopleValue}}</view>
+				<!-- <uni-data-select class="proINname" :disabled="true"
+					v-model="peopleValue" placeholder="请选择主办人"
+					:localdata="rangePeople"
+				></uni-data-select> -->
+			</view>
+			
+			<view class="proMiao">提醒时间</view>
+			<uni-datetime-picker class="proINname" type="datetime" v-model="data.remindTime" @change="changeLog" />
+			<view class="proMiao">预警时间</view>
+			<uni-datetime-picker class="proINname" type="datetime" v-model="data.warnTime" @change="changeLog" />
+			<view class="proMiao">任务周期</view>
+			<uni-datetime-picker class="proINname" v-model="datetimerange" type="datetimerange" rangeSeparator="至" />
+			<!-- 操作键 -->
+			<view class="project">
+				<view class="butt queren" @click="updateRen">保存</view>
+			</view>
+			<view style="width: 100%;height: 60rpx;"></view>
+			
+			<!-- 任务负责人弹出框-->
+			<uni-popup ref="popup" background-color="#fff">
+				<view class="popup-content">
+					<view class="popup-title">
+						<view @click="quPopup">取消</view>
+						<view>选择任务负责人</view>
+						<view style="color: rgba(0, 97, 255, 1);" @click="selectPeo">确定</view>
+					</view>
+					<scroll-view scroll-y="true" class="scroll_view_style">
+						<view class="popup-list">
+							<radio-group @change="radioChange" v-for="(item,index) in people" :key="index">
+							<view class="l-line"></view>
+							<view class="l-kuang">
+								<view class="l-circle"></view>
+								<view style="margin-left: 20rpx;width: 320px;">
+									<view style="font-size: 28rpx;">{{item.userName}}</view>
+									<view style="font-size: 24rpx;">{{item.department}}</view>
+								</view>
+								<label class="l-label">
+									<view>
+										<radio :id="item.userName" :value="item.userName" :checked="index==peopleCruuent"></radio>
+									</view>
+								</label>
+								
+							</view>
+							</radio-group>
+						</view>
+					</scroll-view>
+				</view>
+			</uni-popup>
+		</view>
 	</view>
 	</view>
 </template>
 </template>
 
 
-<script>
-	import configdata from '@/common/config.js'
-	export default {
-		data() {
-			return {
-				data:{},
-				renwuName:'',//任务名称
-				projectId:'',//项目id
-				scoreStandard:'',//评价标准
-				scoreLimit:'',//评分上限
-				weight:'',//权重
-				remindTime: '',//提醒时间
-				warnTime:'',//预警时间
-				datetimerange: [],
-				people:[],
-				peopleCruuent:'',
-				peopleValue:'',
-				peopleId:'',
-				// 附件
-				fileList: [],
-				fileList2: [],
-				fileList22:'',
-				listStyles: {
-					"borderStyle": {
-						"width": "0", // 边框宽度
-					},
-					"border": false, // 是否显示边框
-					"dividline": false
-				},
-				
-				page:1,
-				size:10,
-				totalCount:0,
-			}
-		},
-		onLoad(option) {
-			console.log(JSON.parse(decodeURIComponent(option.data)))
-			console.log(JSON.parse(decodeURIComponent(option.people)))
-			this.data=JSON.parse(decodeURIComponent(option.data))
-			this.people=JSON.parse(decodeURIComponent(option.people))
-			// this.getPeople()
-			this.peopleValue=this.data.headerName
-			this.peopleId=this.data.header
-			this.datetimerange[0]=this.data.startTime
-			this.datetimerange[1]=this.data.endTime
-			var image=[]
-			image=this.data.fileUrl.split(',')
-			this.fileList2 =image.map(item =>{
-				return {
-					name: item
-				}
-			})
-			this.fileList22=image.join(",")
-			console.log(this.fileList2)
-		},
-		methods: {
-			// 任务负责人弹框
-			toggle() {
-				console.log('dd')
-				// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
-				this.$refs.popup.open('bottom')
-				// this.getPeople()
-			},
-			//取消弹框
-			quPopup(){
-				this.$refs.popup.close()
-			},
-			//确定负责人
-			selectPeo(){
-				this.$refs.popup.close()
-				this.peopleValue=this.people[this.peopleCruuent].userName
-				this.peopleId=this.people[this.peopleCruuent].id
-			},
-			// 选择负责人
-			radioChange: function(evt) {
-				console.log(evt)
-				for (let i = 0; i < this.people.length; i++) {
-					if (this.people[i].userName === evt.detail.value) {
-						this.peopleCruuent = i;
-						break;
-					}
-				}
-			},
-			//选择负责人
-			getPeople(){
-				// this.people=[]
-				uni.showLoading({
-					title: '加载中',
-					mask: true, // 是否显示透明蒙层,防止触摸穿透
-				});
-				this.$Request.postJson('/api/sysUser/queryPage?page='+this.page+'&rows='+this.size,{
-					"userName": null,      // 姓名
-					"roleName": null,      // 角色名称
-					"department": null,     // 部门
-					"createBy": "",   // 创建时间-开始日期
-					"updateBy": ""    // 创建时间-结束日期
-				}).then(res => {
-					if (res.code==200) {
-						this.totalCount = res.data.total
-						if (this.page == 1) {
-							console.log('哈')
-							this.people = res.data.rows
-						} else {
-							this.people = this.people.concat(res.data.rows)
-						}
-						console.log(this.people,'人')
-					}
-					uni.hideLoading();
-				});
-			},
-			//修改任务
-			updateRen(){
-				let that = this
-				if (!that.data.taskName) {
-					that.$queue.showToast("请输入任务名称");
-				}else if (!that.data.scoreStandard) {
-					that.$queue.showToast("请输入评分标准");
-				}else if (!that.data.scoreLimit) {
-					that.$queue.showToast("请输入评分上限");
-				}else if (!that.data.weight) {
-					that.$queue.showToast("请输入权重");
-				}else if (!that.data.remindTime) {
-					that.$queue.showToast("请选择提醒时间");
-				}else if (!that.data.warnTime) {
-					that.$queue.showToast("请选择预警时间");
-				}else if (!that.datetimerange) {
-					that.$queue.showToast("请选择周期");
-				} else if (!that.peopleId) {
-					that.$queue.showToast("请选择任务负责人");
-				}else {
-					uni.showLoading({
-						title: '加载中',
-						mask: true, // 是否显示透明蒙层,防止触摸穿透
-					});
-					var data={
-						"id": that.data.id,
-						"taskName": that.data.taskName,   // 任务名称
-						"projectId": that.data.projectId,   // 项目ID
-						"scoreStandard": that.data.scoreStandard,   // 评价标准
-						"fileUrl": that.fileList22,  // 附件
-						"scoreLimit": that.data.scoreLimit,   // 评分上限
-						"weight": that.data.weight,   // 权重
-						"remindTime": that.data.remindTime,   // 提醒时间
-						"warnTime": that.data.warnTime,    // 预警时间
-						"header": that.peopleId,    // 负责人
-						"startTime": that.datetimerange[0],   // 周期-起始时间
-						"endTime": that.datetimerange[1]    // 周期-结束时间
-					}
-					that.$Request.postJson('/api/sysTask/update',data).then(res => {
-						if (res.code==200) {
-							uni.showToast({
-								title: '修改成功',
-								icon: 'none',
-								duration:800
-							});
-							uni.hideLoading()
-											
-							setTimeout(function() {
-								uni.switchTab({
-									url:'/pages/project/index'
-								})
-							}, 1000)
-						} else {
-							uni.hideLoading();
-							uni.showToast({
-								title: res.message,
-								icon: 'none',
-								duration:800
-							});
-						}
-					});
-				}
-			},
-			// 上传附件
-			uploadSuccess(e) {
-			console.log('上传成功', e)
-			},
-			uploadFail(e) {
-				console.log('上传失败:', e)
-			},
-			//删除文件
-			deleteHandle(index){
-				console.log(index)
-				this.fileList2.splice(index.index,1)
-				// console.log(this.fileList2)
-				this.fileList22=this.fileList2.join(",")
-			},
-			async selectUpload(e) {
-				console.log('上传:', e)
-				 let data = new FormData();
-				  data.set("file", e.tempFiles[0].file);
-				  let res = await this.$axios({
-				    method: "post",
-				    url: this.config('APIHOST1') + "/api/sysFile/upload",
-				    headers: {
-						tokenW: localStorage.getItem("token"),
-						"Content-Type": "multipart/form-data"
-				    },
-				    data: data,
-				  });
-					// return res
-				  console.log(res, "图片上传成功");
-				  if (res.data.code == 200) {
-					console.log(this.fileList)
-				    this.fileList2.push(res.data.data);
-					this.fileList22=this.fileList2.join(",")
-					// console.log(this.fileList2.join(","))
-				  } else if(res.message=="登录凭证已过去,请重新登录"){
-					uni.removeStorageSync("tokenW")
-					uni.removeStorageSync("roleId")
-					uni.showModal({
-						title: '提示',
-						content: '用户信息失效,请重新登录!',
-						showCancel: false, // 是否显示取消按钮,默认为 true // 是否显示取消按钮,默认为 true
-						success: function(res) {
-							if (res.confirm) {
-							}
-						}
-					});
-				   }else {
-			    		uni.showToast({
-							title: res.message,
-							icon: 'none',
-							duration:800
-						});
-				    }
-			},
-			config: function (name) {
-				var info = null
-				if (name) {
-					var name2 = name.split('.') //字符分割
-					if (name2.length > 1) {
-						info = configdata[name2[0]][name2[1]] || null
-					} else {
-						info = configdata[name] || null
-					}
-					if (info == null) {
-						let web_config = cache.get('web_config')
-						if (web_config) {
-							if (name2.length > 1) {
-								info = web_config[name2[0]][name2[1]] || null
-							} else {
-								info = web_config[name] || null
-							}
-						}
-					}
-				}
-				return info
-			},
-		}
+<script>
+	import configdata from '@/common/config.js'
+	export default {
+		data() {
+			return {
+				data:{},
+				renwuName:'',//任务名称
+				projectId:'',//项目id
+				scoreStandard:'',//评价标准
+				scoreLimit:'',//评分上限
+				weight:'',//权重
+				remindTime: '',//提醒时间
+				warnTime:'',//预警时间
+				datetimerange: [],
+				people:[],
+				peopleCruuent:'',
+				peopleValue:'',
+				peopleId:'',
+				// 附件
+				fileList: [],
+				fileList2: [],
+				fileList22:'',
+				listStyles: {
+					"borderStyle": {
+						"width": "0", // 边框宽度
+					},
+					"border": false, // 是否显示边框
+					"dividline": false
+				},
+				
+				page:1,
+				size:10,
+				totalCount:0,
+			}
+		},
+		onLoad(option) {
+			console.log(JSON.parse(decodeURIComponent(option.data)))
+			console.log(JSON.parse(decodeURIComponent(option.people)))
+			this.data=JSON.parse(decodeURIComponent(option.data))
+			this.people=JSON.parse(decodeURIComponent(option.people))
+			// this.getPeople()
+			this.peopleValue=this.data.headerName
+			this.peopleId=this.data.header
+			this.datetimerange[0]=this.data.startTime
+			this.datetimerange[1]=this.data.endTime
+			var image=[]
+			image=this.data.fileUrl.split(',')
+			this.fileList2 =image.map(item =>{
+				return {
+					name: item
+				}
+			})
+			this.fileList22=image.join(",")
+			console.log(this.fileList2)
+		},
+		methods: {
+			// 任务负责人弹框
+			toggle() {
+				console.log('dd')
+				// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+				this.$refs.popup.open('bottom')
+				// this.getPeople()
+			},
+			//取消弹框
+			quPopup(){
+				this.$refs.popup.close()
+			},
+			//确定负责人
+			selectPeo(){
+				this.$refs.popup.close()
+				this.peopleValue=this.people[this.peopleCruuent].userName
+				this.peopleId=this.people[this.peopleCruuent].id
+			},
+			// 选择负责人
+			radioChange: function(evt) {
+				console.log(evt)
+				for (let i = 0; i < this.people.length; i++) {
+					if (this.people[i].userName === evt.detail.value) {
+						this.peopleCruuent = i;
+						break;
+					}
+				}
+			},
+			//选择负责人
+			getPeople(){
+				// this.people=[]
+				uni.showLoading({
+					title: '加载中',
+					mask: true, // 是否显示透明蒙层,防止触摸穿透
+				});
+				this.$Request.postJson('/api/sysUser/queryPage?page='+this.page+'&rows='+this.size,{
+					"userName": null,      // 姓名
+					"roleName": null,      // 角色名称
+					"department": null,     // 部门
+					"createBy": "",   // 创建时间-开始日期
+					"updateBy": ""    // 创建时间-结束日期
+				}).then(res => {
+					if (res.code==200) {
+						this.totalCount = res.data.total
+						if (this.page == 1) {
+							console.log('哈')
+							this.people = res.data.rows
+						} else {
+							this.people = this.people.concat(res.data.rows)
+						}
+						console.log(this.people,'人')
+					}
+					uni.hideLoading();
+				});
+			},
+			//修改任务
+			updateRen(){
+				let that = this
+				if (!that.data.taskName) {
+					that.$queue.showToast("请输入任务名称");
+				}else if (!that.data.scoreStandard) {
+					that.$queue.showToast("请输入评分标准");
+				}else if (!that.data.scoreLimit) {
+					that.$queue.showToast("请输入评分上限");
+				}else if (!that.data.weight) {
+					that.$queue.showToast("请输入权重");
+				}else if (!that.data.remindTime) {
+					that.$queue.showToast("请选择提醒时间");
+				}else if (!that.data.warnTime) {
+					that.$queue.showToast("请选择预警时间");
+				}else if (!that.datetimerange) {
+					that.$queue.showToast("请选择周期");
+				} else if (!that.peopleId) {
+					that.$queue.showToast("请选择任务负责人");
+				}else {
+					uni.showLoading({
+						title: '加载中',
+						mask: true, // 是否显示透明蒙层,防止触摸穿透
+					});
+					var data={
+						"id": that.data.id,
+						"taskName": that.data.taskName,   // 任务名称
+						"projectId": that.data.projectId,   // 项目ID
+						"scoreStandard": that.data.scoreStandard,   // 评价标准
+						"fileUrl": that.fileList22,  // 附件
+						"scoreLimit": that.data.scoreLimit,   // 评分上限
+						"weight": that.data.weight,   // 权重
+						"remindTime": that.data.remindTime,   // 提醒时间
+						"warnTime": that.data.warnTime,    // 预警时间
+						"header": that.peopleId,    // 负责人
+						"startTime": that.datetimerange[0],   // 周期-起始时间
+						"endTime": that.datetimerange[1]    // 周期-结束时间
+					}
+					that.$Request.postJson('/api/sysTask/update',data).then(res => {
+						if (res.code==200) {
+							uni.showToast({
+								title: '修改成功',
+								icon: 'none',
+								duration:800
+							});
+							uni.hideLoading()
+											
+							setTimeout(function() {
+								uni.switchTab({
+									url:'/pages/project/index'
+								})
+							}, 1000)
+						} else {
+							uni.hideLoading();
+							uni.showToast({
+								title: res.message,
+								icon: 'none',
+								duration:800
+							});
+						}
+					});
+				}
+			},
+			// 上传附件
+			uploadSuccess(e) {
+			console.log('上传成功', e)
+			},
+			uploadFail(e) {
+				console.log('上传失败:', e)
+			},
+			//删除文件
+			deleteHandle(index){
+				console.log(index)
+				this.fileList2.splice(index.index,1)
+				// console.log(this.fileList2)
+				this.fileList22=this.fileList2.join(",")
+			},
+			async selectUpload(e) {
+				console.log('上传:', e)
+				 let data = new FormData();
+				  data.set("file", e.tempFiles[0].file);
+				  let res = await this.$axios({
+				    method: "post",
+				    url: this.config('APIHOST1') + "/api/sysFile/upload",
+				    headers: {
+						tokenW: sessionStorage.getItem("token"),
+						"Content-Type": "multipart/form-data"
+				    },
+				    data: data,
+				  });
+					// return res
+				  console.log(res, "图片上传成功");
+				  if (res.data.code == 200) {
+					console.log(this.fileList)
+				    this.fileList2.push(res.data.data);
+					this.fileList22=this.fileList2.join(",")
+					// console.log(this.fileList2.join(","))
+				  } else if(res.message=="登录凭证已过去,请重新登录"){
+					sessionStorage.removeItem("token")
					sessionStorage.removeItem("roleId")
+					uni.showModal({
+						title: '提示',
+						content: '用户信息失效,请重新登录!',
+						showCancel: false, // 是否显示取消按钮,默认为 true // 是否显示取消按钮,默认为 true
+						success: function(res) {
+							if (res.confirm) {
+							}
+						}
+					});
+				   }else {
+			    		uni.showToast({
+							title: res.message,
+							icon: 'none',
+							duration:800
+						});
+				    }
+			},
+			config: function (name) {
+				var info = null
+				if (name) {
+					var name2 = name.split('.') //字符分割
+					if (name2.length > 1) {
+						info = configdata[name2[0]][name2[1]] || null
+					} else {
+						info = configdata[name] || null
+					}
+					if (info == null) {
+						let web_config = cache.get('web_config')
+						if (web_config) {
+							if (name2.length > 1) {
+								info = web_config[name2[0]][name2[1]] || null
+							} else {
+								info = web_config[name] || null
+							}
+						}
+					}
+				}
+				return info
+			},
+		}
 	}
 	}
 </script>
 </script>
 
 
-<style>
-	.content {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-	}
-	.param{
-		margin: 20rpx 0 0 0;
-		width: 100%;
-		background-color: rgba(255, 255, 255, 1);
-		font-size: 28rpx;
-		font-weight: 400;
-		line-height: 41rpx;
-		color: rgba(0, 0, 0, 1);
-	}
-	.proMiao{
-		margin: 31rpx 0 0 20rpx;
-	}
-	/* 上传附件 */
-	.upload-img{
-		/* margin: 25rpx 0 0 21rpx;
-		width: 200rpx;
-		height: 80rpx;
-		opacity: 1;
-		border-radius: 13rpx;
-		background: rgba(0, 97, 255, 0.1);
-		
-		border: 1rpx solid rgba(0, 97, 255, 1); */
-	}
-	.proINname{
-		margin: 25rpx 0 0 21rpx;
-		width: 709rpx;
-		height: 90rpx;
-		border-radius: 13rpx;
-		background: rgba(245, 248, 252, 1);
-		border: 1rpx solid rgba(229, 229, 229, 1);
-		font-size: 28rpx;
-		line-height: 90rpx;
-		/* color: rgba(179, 179, 179, 1); */
-	}
-	.proIMi{
-		height: 315rpx;
-	}
-	/* 操作键 */
-	.project{
-		display: flex;
-		margin: 61rpx 0 0 0;
-		justify-content: space-evenly;
-	}
-	.butt{
-		width: 330rpx;
-		height: 90rpx;
-		border-radius: 117rpx;
-		font-size: 32rpx;
-		line-height: 90rpx;
-		text-align: center;
-	}
-	.quxiao{
-		border: 1rpx solid rgba(0, 97, 255, 1);
-		color: rgba(0, 97, 255, 1);
-	}
-	.queren{
-		background: rgba(0, 97, 255, 1);
-		color: rgba(255, 255, 255, 1);
-	}
-	/* 任务负责人弹出框 */
-	.popup-content{
-		height: 452px;
-		overflow-x: hidden;
-		.scroll_view_style{
-			height: 100%;
-		}
-	}
-	.popup-title{
-		display: flex;
-		width: 100%;
-		height: 104rpx;
-		font-size: 32rpx;
-		line-height: 104rpx;
-		justify-content: space-around;
-		color: rgba(0, 0, 0, 1);
-	}
-	.l-line{
-		width: 100%;
-		border: 1rpx solid rgba(230, 230, 230, 1);
-	}
-	.l-kuang{
-		margin: 40rpx 0 0 20rpx;
-		display: flex;
-	}
-	.l-circle{
-		width: 80rpx;
-		height: 80rpx;
-		border-radius: 50%;
-		background-color:rgba(204, 204, 204, 1);
-	}
-	.l-label1{
-		width: 50rpx;
-		height: 50rpx;
-		opacity: 1;
-		border-radius: 50%;
-		background-color: rgba(0, 97, 255, 1);
-	}
-	.l-label{
-		/* margin-left: 404rpx; */
-		/* width: 50rpx;
-		height: 50rpx;
-		opacity: 1;
-		border-radius: 50%;
-		border: 1rpx solid rgba(166, 166, 166, 1); */
+<style>
+	.content {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+	}
+	.param{
+		margin: 20rpx 0 0 0;
+		width: 100%;
+		background-color: rgba(255, 255, 255, 1);
+		font-size: 28rpx;
+		font-weight: 400;
+		line-height: 41rpx;
+		color: rgba(0, 0, 0, 1);
+	}
+	.proMiao{
+		margin: 31rpx 0 0 20rpx;
+	}
+	/* 上传附件 */
+	.upload-img{
+		/* margin: 25rpx 0 0 21rpx;
+		width: 200rpx;
+		height: 80rpx;
+		opacity: 1;
+		border-radius: 13rpx;
+		background: rgba(0, 97, 255, 0.1);
+		
+		border: 1rpx solid rgba(0, 97, 255, 1); */
+	}
+	.proINname{
+		margin: 25rpx 0 0 21rpx;
+		width: 709rpx;
+		height: 90rpx;
+		border-radius: 13rpx;
+		background: rgba(245, 248, 252, 1);
+		border: 1rpx solid rgba(229, 229, 229, 1);
+		font-size: 28rpx;
+		line-height: 90rpx;
+		/* color: rgba(179, 179, 179, 1); */
+	}
+	.proIMi{
+		height: 315rpx;
+	}
+	/* 操作键 */
+	.project{
+		display: flex;
+		margin: 61rpx 0 0 0;
+		justify-content: space-evenly;
+	}
+	.butt{
+		width: 330rpx;
+		height: 90rpx;
+		border-radius: 117rpx;
+		font-size: 32rpx;
+		line-height: 90rpx;
+		text-align: center;
+	}
+	.quxiao{
+		border: 1rpx solid rgba(0, 97, 255, 1);
+		color: rgba(0, 97, 255, 1);
+	}
+	.queren{
+		background: rgba(0, 97, 255, 1);
+		color: rgba(255, 255, 255, 1);
+	}
+	/* 任务负责人弹出框 */
+	.popup-content{
+		height: 452px;
+		overflow-x: hidden;
+		.scroll_view_style{
+			height: 100%;
+		}
+	}
+	.popup-title{
+		display: flex;
+		width: 100%;
+		height: 104rpx;
+		font-size: 32rpx;
+		line-height: 104rpx;
+		justify-content: space-around;
+		color: rgba(0, 0, 0, 1);
+	}
+	.l-line{
+		width: 100%;
+		border: 1rpx solid rgba(230, 230, 230, 1);
+	}
+	.l-kuang{
+		margin: 40rpx 0 0 20rpx;
+		display: flex;
+	}
+	.l-circle{
+		width: 80rpx;
+		height: 80rpx;
+		border-radius: 50%;
+		background-color:rgba(204, 204, 204, 1);
+	}
+	.l-label1{
+		width: 50rpx;
+		height: 50rpx;
+		opacity: 1;
+		border-radius: 50%;
+		background-color: rgba(0, 97, 255, 1);
+	}
+	.l-label{
+		/* margin-left: 404rpx; */
+		/* width: 50rpx;
+		height: 50rpx;
+		opacity: 1;
+		border-radius: 50%;
+		border: 1rpx solid rgba(166, 166, 166, 1); */
 	}
 	}
 </style>
 </style>

+ 6 - 8
pages/project/index.vue

@@ -200,10 +200,9 @@
 				});
 				});
 				that.$Request.postT('/api/sysUser/queryOwn').then(res => {
 				that.$Request.postT('/api/sysUser/queryOwn').then(res => {
 					if (res.code==200) {
 					if (res.code==200) {
-						uni.setStorageSync('roleId', res.data.roleId)
+						sessionStorage.setItem('roleId',res.data.roleId)
 						var roleId=res.data.roleId
 						var roleId=res.data.roleId
 						that.getRole(roleId)
 						that.getRole(roleId)
-						console.log(uni.getStorageSync('roleId'),'数据')
 					} else {
 					} else {
 						uni.showToast({
 						uni.showToast({
 							title: res.message,
 							title: res.message,
@@ -226,7 +225,6 @@
 				}
 				}
 				that.$Request.postT('/api/sysRole/queryMenuByRole',data).then(res => {
 				that.$Request.postT('/api/sysRole/queryMenuByRole',data).then(res => {
 					if (res.code==200) {
 					if (res.code==200) {
-						console.log(uni.getStorageSync('roleId'),'数据')
 						console.log(res.data)
 						console.log(res.data)
 						this.fenguan=res.data[1].menuLists[1].state
 						this.fenguan=res.data[1].menuLists[1].state
 						this.allcuiban=res.data[1].menuLists[0].state
 						this.allcuiban=res.data[1].menuLists[0].state
@@ -238,11 +236,11 @@
 						this.delexiang=res.data[1].menuLists[7].state
 						this.delexiang=res.data[1].menuLists[7].state
 						this.pingxiang=res.data[1].menuLists[8].state
 						this.pingxiang=res.data[1].menuLists[8].state
 						
 						
-						uni.setStorageSync('crerenwu',res.data[1].menuLists[9].state)
-						uni.setStorageSync('uprenwu',res.data[1].menuLists[10].state)
-						uni.setStorageSync('delerenwu',res.data[1].menuLists[11].state)
-						uni.setStorageSync('cuirenwu',res.data[1].menuLists[12].state)
-						uni.setStorageSync('gengrenwu',res.data[1].menuLists[13].state)
+						sessionStorage.setItem('crerenwu',res.data[1].menuLists[9].state)
+						sessionStorage.setItem('uprenwu',res.data[1].menuLists[10].state)
+						sessionStorage.setItem('delerenwu',res.data[1].menuLists[11].state)
+						sessionStorage.setItem('cuirenwu',res.data[1].menuLists[12].state)
+						sessionStorage.setItem('gengrenwu',res.data[1].menuLists[13].state)
 					} else {
 					} else {
 						uni.showToast({
 						uni.showToast({
 							title: res.message,
 							title: res.message,

File diff suppressed because it is too large
+ 1094 - 1012
pages/project/projectChange.vue


+ 10 - 7
pages/project/projectX.vue

@@ -13,7 +13,7 @@
 				<uni-file-picker limit="3" 
 				<uni-file-picker limit="3" 
 					@select='selectUpload' 
 					@select='selectUpload' 
 					:auto-upload='false' 
 					:auto-upload='false' 
-					file-extname='pdf,docx,xlsx,' 
+					file-extname='pdf,docx,jpg,png,jpeg,doc,docm,dot,dotm,dotx,xlsx,xls,csv,xlsm,slxb,xlt,xltx' 
 					file-mediatype="all" 
 					file-mediatype="all" 
 					@success='uploadSuccess'	
 					@success='uploadSuccess'	
 					@fail='uploadFail' 
 					@fail='uploadFail' 
@@ -122,12 +122,15 @@
 				select:0,//状态
 				select:0,//状态
 			}
 			}
 		},
 		},
+		onShow() {
+			this.crerenwu=sessionStorage.getItem("crerenwu")
+			this.uprenwu=sessionStorage.getItem("uprenwu")
+			this.delerenwu=sessionStorage.getItem("delerenwu")
+			this.cuirenwu=sessionStorage.getItem("cuirenwu")
+			this.gengrenwu=sessionStorage.getItem("gengrenwu")
+		},
 		onLoad(option) {
 		onLoad(option) {
-			this.crerenwu=uni.getStorageSync('crerenwu')
-			this.uprenwu=uni.getStorageSync('uprenwu')
-			this.delerenwu=uni.getStorageSync('delerenwu')
-			this.cuirenwu=uni.getStorageSync('cuirenwu')
-			this.gengrenwu=uni.getStorageSync('gengrenwu')
+			
 			this.select=option.select
 			this.select=option.select
 			
 			
 			console.log(JSON.parse(decodeURIComponent(option.data)))
 			console.log(JSON.parse(decodeURIComponent(option.data)))
@@ -481,7 +484,7 @@
 		background-color:rgba(204, 204, 204, 1);
 		background-color:rgba(204, 204, 204, 1);
 	}
 	}
 	.jindu-type{
 	.jindu-type{
-		width: 103rpx;
+		/* width: 103rpx; */
 		height: 40rpx;
 		height: 40rpx;
 		border-radius: 71rpx;
 		border-radius: 71rpx;
 		font-size: 24rpx;
 		font-size: 24rpx;

+ 300 - 300
pages/project/renwuUpdateJin.vue

@@ -1,308 +1,308 @@
-<template>
-	<view class="content">
-		<view class="param">
-			<view class="proMiao mingchen">{{data.taskName}}</view>
-			<view class="proMiao title">评分标准</view>
-			<view class="prolittle">{{data.scoreStandard}}</view>
-			<view class="proMiao title">任务负责人</view>
-			<view class="prolittle">{{data.headerName}}</view>
-			<view class="proMiao title">评分上限</view>
-			<view class="prolittle">{{data.scoreLimit}}</view>
-			<view class="proMiao">附件</view>
-			<view class="prolittle" v-for="(item,index) in fileList3">
-				<view style="color: rgba(0, 97, 255, 1);" @click="navigateToTU(item.name)">{{item.name}}</view>
-			</view>
-			<view class="proMiao title">权重</view>
-			<view class="prolittle">{{data.weight}}</view>
-			<view class="proMiao title">提醒时间</view>
-			<view class="prolittle">{{data.remindTime}}</view>
-			<view class="proMiao title">预警时间</view>
-			<view class="prolittle">{{data.warnTime}}</view>
-			<view class="proMiao title">任务周期</view>
-			<view class="prolittle">{{data.startTime}}  -  {{data.endTime}}</view>
-			<view class="proMiao title">完成说明</view>
-			<textarea class="proINname proIMi" v-model="finishRemark" placeholder="请输入完成说明"/>
-			<view class="proMiao">上传附件</view>
-			<view class="upload-img">
-				<uni-file-picker limit="3" 
-					@select='selectUpload' 
-					@delete="deleteHandle"
-					:auto-upload='false' 
-					file-extname='pdf,docx,jpg,png,jpeg' 
-					file-mediatype="all" 
-					@success='uploadSuccess'	
-					@fail='uploadFail' 
-					:list-styles='listStyles' 
-					v-model='fileList'
-				></uni-file-picker>
-			</view>
-			<!-- 操作键 -->
-			<view class="project">
-				<view class="butt quxiao" @click="quxiao">取消</view>
-				<view class="butt queren" @click="updateJindu">确定</view>
-			</view>
-			<view style="width: 100%;height: 60rpx;"></view>
-		</view>
+<template>
+	<view class="content">
+		<view class="param">
+			<view class="proMiao mingchen">{{data.taskName}}</view>
+			<view class="proMiao title">评分标准</view>
+			<view class="prolittle">{{data.scoreStandard}}</view>
+			<view class="proMiao title">任务负责人</view>
+			<view class="prolittle">{{data.headerName}}</view>
+			<view class="proMiao title">评分上限</view>
+			<view class="prolittle">{{data.scoreLimit}}</view>
+			<view class="proMiao">附件</view>
+			<view class="prolittle" v-for="(item,index) in fileList3">
+				<view style="color: rgba(0, 97, 255, 1);" @click="navigateToTU(item.name)">{{item.name}}</view>
+			</view>
+			<view class="proMiao title">权重</view>
+			<view class="prolittle">{{data.weight}}</view>
+			<view class="proMiao title">提醒时间</view>
+			<view class="prolittle">{{data.remindTime}}</view>
+			<view class="proMiao title">预警时间</view>
+			<view class="prolittle">{{data.warnTime}}</view>
+			<view class="proMiao title">任务周期</view>
+			<view class="prolittle">{{data.startTime}}  -  {{data.endTime}}</view>
+			<view class="proMiao title">完成说明</view>
+			<textarea class="proINname proIMi" v-model="finishRemark" placeholder="请输入完成说明"/>
+			<view class="proMiao">上传附件</view>
+			<view class="upload-img">
+				<uni-file-picker limit="3" 
+					@select='selectUpload' 
+					@delete="deleteHandle"
+					:auto-upload='false' 
+					file-extname='pdf,docx,jpg,png,jpeg,doc,docm,dot,dotm,dotx,xlsx,xls,csv,xlsm,slxb,xlt,xltx' 
+					file-mediatype="all" 
+					@success='uploadSuccess'	
+					@fail='uploadFail' 
+					:list-styles='listStyles' 
+					v-model='fileList'
+				></uni-file-picker>
+			</view>
+			<span style="margin: 20rpx 0 0 20rpx;width: 700rpx;">支持pdf,docx,jpg,png,jpeg,doc,docm,dot,dotm,dotx,xlsx,xls,csv,xlsm,slxb,xlt,xltx格式,单个文件大小不超过5MB</span>
+			<!-- 操作键 -->
+			<view class="project">
+				<view class="butt quxiao" @click="quxiao">取消</view>
+				<view class="butt queren" @click="updateJindu">确定</view>
+			</view>
+			<view style="width: 100%;height: 60rpx;"></view>
+		</view>
 	</view>
 	</view>
 </template>
 </template>
 
 
-<script>
-	import configdata from '@/common/config.js'
-	export default {
-		data() {
-			return {
-				data:{},
-				fileList3: [],
-				// 完成进度上传附件
-				fileList: [],
-				fileList2: [],
-				fileList22:'',
-				listStyles: {
-					"borderStyle": {
-						"width": "0", // 边框宽度
-					},
-					"border": false, // 是否显示边框
-					"dividline": false
-				},
-				finishRemark:'',//完成说明
-			}
-		},
-		onLoad(option) {
-			console.log(JSON.parse(decodeURIComponent(option.data)))
-			this.data=JSON.parse(decodeURIComponent(option.data))
-			var image=[]
-			image=this.data.fileUrl.split(',')
-			this.fileList3 =image.map(item =>{
-				return {
-					name: item
-				}
-			})
-		},
-		methods: {
-			//跳转页面
-			navigateToTU(url) {
-			  window.location.href = url;
-			},
-			//取消
-			quxiao(){
-				uni.navigateBack({
-					delta:1
-				})
-			},
-			//更新进度
-			updateJindu(){
-				let that = this
-				uni.showLoading({
-					title: '加载中',
-					mask: true, // 是否显示透明蒙层,防止触摸穿透
-				});
-				var data={
-					"taskId": that.data.id,  
-					"finishRemark": that.finishRemark,
-					"fileUrl":that.fileList22
-				}
-				that.$Request.postT('/api/sysTask/submitTask',data).then(res => {
-					if (res.code==200) {
-						uni.showToast({
-							title: '更新成功',
-							icon: 'none',
-							duration:800
-						});
-						uni.hideLoading()
-										
-						setTimeout(function() {
-							uni.navigateBack({
-								delta:1
-							})
-							// uni.switchTab({
-							// 	url:'/pages/project/index'
-							// })
-						}, 1000)
-					} else {
-						uni.hideLoading();
-						uni.showToast({
-							title: res.message,
-							icon: 'none',
-							duration:800
-						});
-					}
-				});
-			},
-			// 上传附件
-			uploadSuccess(e) {
-			console.log('上传成功', e)
-			},
-			uploadFail(e) {
-				console.log('上传失败:', e)
-			},
-			//删除文件
-			deleteHandle(index){
-				console.log(index)
-				this.fileList2.splice(index.index,1)
-				console.log(this.fileList2)
-				this.fileList22=this.fileList2.join(",")
-				console.log(this.fileList22)
-				// uni.showLoading({
-				// 	title: '删除中',
-				// 	mask: true, // 是否显示透明蒙层,防止触摸穿透
-				// });
-				// var data={
-				// 	"fileName": this.fileList2[index]
-				// }
-				// this.$Request.postT('/api/sysFile/delete',data).then(res => {
-				// 	if (res.code==200) {
-				// 		uni.showToast({
-				// 			title: '删除成功',
-				// 			icon: 'none',
-				// 			duration:800
-				// 		});
-				// 		uni.hideLoading()
-				// 	} else {
-				// 		uni.hideLoading();
-				// 		uni.showToast({
-				// 			title: res.message,
-				// 			icon: 'none',
-				// 			duration:800
-				// 		});
-				// 	}
-				// });
-			},
-			async selectUpload(e) {
-				console.log('上传:', e)
-				 let data = new FormData();
-				  data.set("file", e.tempFiles[0].file);
-				  let res = await this.$axios({
-				    method: "post",
-				    url: this.config('APIHOST1') + "/api/sysFile/upload",
-				    headers: {
-						tokenW: localStorage.getItem("token"),
-						// tokenP: localStorage.getItem("token"),
-						"Content-Type": "multipart/form-data"
-				    },
-				    data: data,
-				  });
-					// return res
-				  console.log(res, "图片上传成功");
-				  if (res.data.code == 200) {
-					console.log(this.fileList)
-				    this.fileList2.push(res.data.data);
-					this.fileList22=this.fileList2.join(",")
-					console.log(this.fileList2.join(","))
-				  } else if(res.message=="登录凭证已过去,请重新登录"){
-					uni.removeStorageSync("tokenW")
-					uni.removeStorageSync("roleId")
-					uni.showModal({
-						title: '提示',
-						content: '用户信息失效,请重新登录!',
-						showCancel: false, // 是否显示取消按钮,默认为 true // 是否显示取消按钮,默认为 true
-						success: function(res) {
-							if (res.confirm) {
-							}
-						}
-					});
-				   }else {
-			    		uni.showToast({
-							title: res.message,
-							icon: 'none',
-							duration:800
-						});
-				    }
-			},
-			config: function (name) {
-				var info = null
-				if (name) {
-					var name2 = name.split('.') //字符分割
-					if (name2.length > 1) {
-						info = configdata[name2[0]][name2[1]] || null
-					} else {
-						info = configdata[name] || null
-					}
-					if (info == null) {
-						let web_config = cache.get('web_config')
-						if (web_config) {
-							if (name2.length > 1) {
-								info = web_config[name2[0]][name2[1]] || null
-							} else {
-								info = web_config[name] || null
-							}
-						}
-					}
-				}
-				return info
-			},
-		}
+<script>
+	import configdata from '@/common/config.js'
+	export default {
+		data() {
+			return {
+				data:{},
+				fileList3: [],
+				// 完成进度上传附件
+				fileList: [],
+				fileList2: [],
+				fileList22:'',
+				listStyles: {
+					"borderStyle": {
+						"width": "0", // 边框宽度
+					},
+					"border": false, // 是否显示边框
+					"dividline": false
+				},
+				finishRemark:'',//完成说明
+			}
+		},
+		onLoad(option) {
+			console.log(JSON.parse(decodeURIComponent(option.data)))
+			this.data=JSON.parse(decodeURIComponent(option.data))
+			var image=[]
+			image=this.data.fileUrl.split(',')
+			this.fileList3 =image.map(item =>{
+				return {
+					name: item
+				}
+			})
+		},
+		methods: {
+			//跳转页面
+			navigateToTU(url) {
+			  window.location.href = url;
+			},
+			//取消
+			quxiao(){
+				uni.navigateBack({
+					delta:1
+				})
+			},
+			//更新进度
+			updateJindu(){
+				let that = this
+				uni.showLoading({
+					title: '加载中',
+					mask: true, // 是否显示透明蒙层,防止触摸穿透
+				});
+				var data={
+					"taskId": that.data.id,  
+					"finishRemark": that.finishRemark,
+					"fileUrl":that.fileList22
+				}
+				that.$Request.postT('/api/sysTask/submitTask',data).then(res => {
+					if (res.code==200) {
+						uni.showToast({
+							title: '更新成功',
+							icon: 'none',
+							duration:800
+						});
+						uni.hideLoading()
+										
+						setTimeout(function() {
+							uni.navigateBack({
+								delta:1
+							})
+							// uni.switchTab({
+							// 	url:'/pages/project/index'
+							// })
+						}, 1000)
+					} else {
+						uni.hideLoading();
+						uni.showToast({
+							title: res.message,
+							icon: 'none',
+							duration:800
+						});
+					}
+				});
+			},
+			// 上传附件
+			uploadSuccess(e) {
+			console.log('上传成功', e)
+			},
+			uploadFail(e) {
+				console.log('上传失败:', e)
+			},
+			//删除文件
+			deleteHandle(index){
+				console.log(index)
+				this.fileList2.splice(index.index,1)
+				console.log(this.fileList2)
+				this.fileList22=this.fileList2.join(",")
+				console.log(this.fileList22)
+				// uni.showLoading({
+				// 	title: '删除中',
+				// 	mask: true, // 是否显示透明蒙层,防止触摸穿透
+				// });
+				// var data={
+				// 	"fileName": this.fileList2[index]
+				// }
+				// this.$Request.postT('/api/sysFile/delete',data).then(res => {
+				// 	if (res.code==200) {
+				// 		uni.showToast({
+				// 			title: '删除成功',
+				// 			icon: 'none',
+				// 			duration:800
+				// 		});
+				// 		uni.hideLoading()
+				// 	} else {
+				// 		uni.hideLoading();
+				// 		uni.showToast({
+				// 			title: res.message,
+				// 			icon: 'none',
+				// 			duration:800
+				// 		});
+				// 	}
+				// });
+			},
+			async selectUpload(e) {
+				console.log('上传:', e)
+				 let data = new FormData();
+				  data.set("file", e.tempFiles[0].file);
+				  let res = await this.$axios({
+				    method: "post",
+				    url: this.config('APIHOST1') + "/api/sysFile/upload",
+				    headers: {
+						tokenW: sessionStorage.getItem("token"),
+						// tokenP: sessionStorage.getItem("token"),
+						"Content-Type": "multipart/form-data"
+				    },
+				    data: data,
+				  });
+					// return res
+				  console.log(res, "图片上传成功");
+				  if (res.data.code == 200) {
+					console.log(this.fileList)
+				    this.fileList2.push(res.data.data);
+					this.fileList22=this.fileList2.join(",")
+					console.log(this.fileList2.join(","))
+				  } else if(res.message=="登录凭证已过去,请重新登录"){
+					sessionStorage.removeItem("token")
					sessionStorage.removeItem("roleId")
+					uni.showModal({
+						title: '提示',
+						content: '用户信息失效,请重新登录!',
+						showCancel: false, // 是否显示取消按钮,默认为 true // 是否显示取消按钮,默认为 true
+						success: function(res) {
+							if (res.confirm) {
+							}
+						}
+					});
+				   }else {
+			    		uni.showToast({
+							title: res.message,
+							icon: 'none',
+							duration:800
+						});
+				    }
+			},
+			config: function (name) {
+				var info = null
+				if (name) {
+					var name2 = name.split('.') //字符分割
+					if (name2.length > 1) {
+						info = configdata[name2[0]][name2[1]] || null
+					} else {
+						info = configdata[name] || null
+					}
+					if (info == null) {
+						let web_config = cache.get('web_config')
+						if (web_config) {
+							if (name2.length > 1) {
+								info = web_config[name2[0]][name2[1]] || null
+							} else {
+								info = web_config[name] || null
+							}
+						}
+					}
+				}
+				return info
+			},
+		}
 	}
 	}
 </script>
 </script>
 
 
-<style>
-	.content {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-	}
-	.param{
-		margin: 20rpx 0 0 0;
-		width: 100%;
-		background-color: rgba(255, 255, 255, 1);
-		font-size: 28rpx;
-		font-weight: 400;
-		line-height: 41rpx;
-		color: rgba(0, 0, 0, 1);
-	}
-	.proMiao{
-		margin: 31rpx 0 0 20rpx;
-		width: 710rpx;
-	}
-	.prolittle{
-		margin: 5rpx 0 0 20rpx;
-		width: 710rpx;
-		word-wrap: break-word;
-		word-break: break-all;
-		white-space: pre-line;
-	}
-	.proINname{
-		margin: 25rpx 0 0 21rpx;
-		width: 709rpx;
-		height: 90rpx;
-		border-radius: 13rpx;
-		background: rgba(245, 248, 252, 1);
-		border: 1rpx solid rgba(229, 229, 229, 1);
-		font-size: 28rpx;
-		line-height: 90rpx;
-		/* color: rgba(179, 179, 179, 1); */
-	}
-	.proIMi{
-		height: 315rpx;
-	}
-	.mingchen{
-		font-size: 32rpx;
-		font-weight: 500;
-		line-height: 46rpx;
-	}
-	.title{
-		color: rgba(102, 102, 102, 1);
-	}
-	/* 操作键 */
-	.project{
-		display: flex;
-		margin: 61rpx 0 0 0;
-		justify-content: space-evenly;
-	}
-	.butt{
-		width: 330rpx;
-		height: 90rpx;
-		border-radius: 117rpx;
-		font-size: 32rpx;
-		line-height: 90rpx;
-		text-align: center;
-	}
-	.quxiao{
-		border: 1rpx solid rgba(0, 97, 255, 1);
-		color: rgba(0, 97, 255, 1);
-	}
-	.queren{
-		background: rgba(0, 97, 255, 1);
-		color: rgba(255, 255, 255, 1);
+<style>
+	.content {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+	}
+	.param{
+		margin: 20rpx 0 0 0;
+		width: 100%;
+		background-color: rgba(255, 255, 255, 1);
+		font-size: 28rpx;
+		font-weight: 400;
+		line-height: 41rpx;
+		color: rgba(0, 0, 0, 1);
+	}
+	.proMiao{
+		margin: 31rpx 0 0 20rpx;
+		width: 710rpx;
+	}
+	.prolittle{
+		margin: 5rpx 0 0 20rpx;
+		width: 710rpx;
+		word-wrap: break-word;
+		word-break: break-all;
+		white-space: pre-line;
+	}
+	.proINname{
+		margin: 25rpx 0 0 21rpx;
+		width: 709rpx;
+		height: 90rpx;
+		border-radius: 13rpx;
+		background: rgba(245, 248, 252, 1);
+		border: 1rpx solid rgba(229, 229, 229, 1);
+		font-size: 28rpx;
+		line-height: 90rpx;
+		/* color: rgba(179, 179, 179, 1); */
+	}
+	.proIMi{
+		height: 315rpx;
+	}
+	.mingchen{
+		font-size: 32rpx;
+		font-weight: 500;
+		line-height: 46rpx;
+	}
+	.title{
+		color: rgba(102, 102, 102, 1);
+	}
+	/* 操作键 */
+	.project{
+		display: flex;
+		margin: 61rpx 0 0 0;
+		justify-content: space-evenly;
+	}
+	.butt{
+		width: 330rpx;
+		height: 90rpx;
+		border-radius: 117rpx;
+		font-size: 32rpx;
+		line-height: 90rpx;
+		text-align: center;
+	}
+	.quxiao{
+		border: 1rpx solid rgba(0, 97, 255, 1);
+		color: rgba(0, 97, 255, 1);
+	}
+	.queren{
+		background: rgba(0, 97, 255, 1);
+		color: rgba(255, 255, 255, 1);
 	}
 	}
 </style>
 </style>

+ 15 - 0
uni_modules/uni-combox/changelog.md

@@ -0,0 +1,15 @@
+## 1.0.1(2021-11-23)
+- 优化 label、label-width 属性
+## 1.0.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-combox](https://uniapp.dcloud.io/component/uniui/uni-combox)
+## 0.1.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 0.0.6(2021-05-12)
+- 新增 组件示例地址
+## 0.0.5(2021-04-21)
+- 优化 添加依赖 uni-icons, 导入后自动下载依赖
+## 0.0.4(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+## 0.0.3(2021-02-04)
+- 调整为uni_modules目录规范

+ 367 - 0
uni_modules/uni-combox/components/uni-combox/uni-combox.vue

@@ -0,0 +1,367 @@
+<template>
+  <view class="uni-combox" :class="border ? '' : 'uni-combox__no-border'">
+    <view v-if="label" class="uni-combox__label" :style="labelStyle">
+      <text>{{label}}</text>
+    </view>
+    <view class="uni-combox__input-box">
+      <input class="uni-combox__input" type="text" :placeholder="placeholder" placeholder-class="uni-combox__input-plac"
+        v-model="inputVal" @input="onInput" @focus="onFocus" @blur="onBlur" />
+      <uni-icons :type="showSelector? 'top' : 'bottom'" size="14" color="#999" @click="toggleSelector">
+      </uni-icons>
+    </view>
+    <view class="uni-combox__selector" v-if="showSelector">
+      <view class="uni-popper__arrow"></view>
+      <scroll-view scroll-y="true" class="uni-combox__selector-scroll" @scroll="onScroll">
+        <view class="uni-combox__selector-empty" v-if="filterCandidatesLength === 0">
+          <text>{{emptyTips}}</text>
+        </view>
+        <view class="uni-combox__selector-item" v-for="(item,index) in filterCandidates" :key="index"
+          @click="onSelectorClick(index)">
+          <text>{{item[`${labelKey}`]}}</text>
+        </view>
+      </scroll-view>
+    </view>
+    <uni-icons style="padding-left:20rpx;" class="content-clear-icon" type="clear" color="#c0c4cc" v-if="inputVal"
+      @click="onClear"></uni-icons>
+    <!-- :size="clearSize"
+		:color="msg ? '#dd524d' : focusShow ? primaryColor : '#c0c4cc'" -->
+    <!-- 新增蒙层,点击蒙层时关闭选项显示 -->
+    <view class="uni-combox__mask" v-show="showSelector" @click="showSelector = false"></view>
+  </view>
+ 
+</template>
+ 
+<script>
+  import {
+    nextTick
+  } from 'vue'
+  /**
+   * Combox 组合输入框
+   * @description 组合输入框一般用于既可以输入也可以选择的场景
+   * @tutorial https://ext.dcloud.net.cn/plugin?id=1261
+   * @property {String} label 左侧文字
+   * @property {String} labelWidth 左侧内容宽度
+   * @property {String} placeholder 输入框占位符
+   * @property {Array} scorePeople 候选项列表
+   * @property {String} emptyTips 筛选结果为空时显示的文字
+   * @property {String} value 组合框的值
+   */
+  export default {
+    name: 'uniCombox',
+    emits: ['input', 'update:modelValue', 'change'],
+    props: {
+      border: {
+        type: Boolean,
+        default: true
+      },
+      label: {
+        type: String,
+        default: ''
+      },
+      labelWidth: {
+        type: String,
+        default: 'auto'
+      },
+      placeholder: {
+        type: String,
+        default: ''
+      },
+      scorePeople: {
+        type: Array,
+        default () {
+          return []
+        }
+      },
+      emptyTips: {
+        type: String,
+        default: '无匹配项'
+      },
+      labelKey: {
+        type: String,
+        default: 'dictName'
+      },
+      valueKey: {
+        type: String,
+        default: 'dictId'
+      },
+      // #ifndef VUE3
+      value: {
+        type: [String, Number],
+        default: ''
+      },
+      // #endif
+      // #ifdef VUE3
+      modelValue: {
+        type: [String, Number],
+        default: ''
+      },
+      // #endif
+    },
+    data() {
+      return {
+        showSelector: false,
+        inputVal: '',
+        blurTimer: null,
+        dictVal: "",
+        filterCandidates: []
+      }
+    },
+    computed: {
+      labelStyle() {
+        if (this.labelWidth === 'auto') {
+          return ""
+        }
+        return `width: ${this.labelWidth}`
+      },
+ 
+      filterCandidatesLength() {
+        console.log(this.filterCandidates)
+        return this.filterCandidates.length
+      }
+    },
+    watch: {
+      // #ifndef VUE3
+      value: {
+        handler(newVal) {
+          this.dictVal = newVal
+        },
+        immediate: true
+      },
+      // #endif
+ 
+      // 因为获取列表是个异步的过程,需要对列表进行监听
+      scorePeople: {
+         handler(arr) {
+           if (arr.length > 0 && this.dictVal) {
+             let obj = arr.find((item, index) => {
+               return this.dictVal == item[`${this.valueKey}`]
+             })
+             this.inputVal = obj[`${this.labelKey}`]
+              this.$forceUpdate(); // 强制更新 DOM
+           }
+           this.filterCandidates = arr.filter((item) => {
+             return item[`${this.labelKey}`].toString().indexOf(this.inputVal) > -1
+           })
+         },
+         immediate: true,
+         deep: true
+       },
+      // #ifdef VUE3
+      modelValue: {
+        handler(newVal) {
+          // this.inputVal = newVal
+          this.dictVal = newVal
+          if (this.scorePeople.length > 0 && newVal) {
+            let obj = this.scorePeople.find((item, index) => {
+              return newVal == item[`${this.valueKey}`]
+            })
+            // 兼容当传入错误的id在待选列表找不到时候的错误
+            if (obj) {
+              this.inputVal = obj[`${this.labelKey}`]
+            } else {
+              this.inputVal = ''
+            }
+          } else if (!newVal) { //当传入的是空值时直接将上一次回填数据清空
+            this.inputVal = ''
+          }
+        },
+        immediate: true,
+        deep: true,
+      },
+      // #endif
+    },
+    methods: {
+      toggleSelector() {
+        this.showSelector = !this.showSelector
+      },
+      onFocus() {
+        this.filterCandidates = this.scorePeople
+        this.showSelector = true
+      },
+      onBlur() {
+        this.blurTimer = setTimeout(() => {
+          this.showSelector = false
+        }, 153)
+      },
+      onScroll() { // 滚动时将blur的定时器关掉
+        if (this.blurTimer) {
+          clearTimeout(this.blurTimer)
+          this.blurTimer = null
+        }
+      },
+      onSelectorClick(index) {
+        // this.inputVal = this.filterCandidates[index]
+        this.dictVal = this.filterCandidates[index][`${this.valueKey}`]
+        //this.dictVal 的赋值一定要在this.inputVal前执行,
+        //因为this.filterCandidates会监听this.inputVal的变化被重新赋值
+        //这样在选择列表中非第一个选项会报错
+        this.inputVal = this.filterCandidates[index][`${this.labelKey}`]
+        this.showSelector = false
+        this.$emit('input', this.dictVal)
+        this.$emit('change', this.dictVal)
+        this.$emit('update:modelValue', this.dictVal)
+      },
+      onInput() {
+        this.filterCandidates = this.scorePeople.filter((item) => {
+          console.log(item, this.labelKey)
+          return item[`${this.labelKey}`].toString().indexOf(this.inputVal) > -1
+        })
+        setTimeout(() => {
+          this.$emit('input', this.dictVal)
+          this.$emit('update:modelValue', this.dictVal)
+        })
+      },
+      /**
+       * 清理内容
+       * @param {Object} event
+       */
+      onClear(event) {
+        this.inputVal = '';
+      },
+    }
+  }
+</script>
+ 
+<style lang="scss">
+  .uni-combox {
+    font-size: 14px;
+    border: 1px solid #DCDFE6;
+    border-radius: 4px;
+    // padding: 6px 10px;
+    padding: 10px 6px 10px 0;
+    position: relative;
+    /* #ifndef APP-NVUE */
+    display: flex;
+    /* #endif */
+    // height: 40px;
+    flex-direction: row;
+    align-items: center;
+    // border-bottom: solid 1px #DDDDDD;
+  }
+ 
+  .uni-combox__label {
+    font-size: 16px;
+    line-height: 22px;
+    padding-right: 10px;
+    color: #999999;
+  }
+ 
+  .uni-combox__input-box {
+    padding-left: 10px;
+    position: relative;
+    /* #ifndef APP-NVUE */
+    display: flex;
+    /* #endif */
+    flex: 1;
+    flex-direction: row;
+    align-items: center;
+  }
+ 
+  .uni-combox__input {
+    flex: 1;
+    font-size: 14px;
+    height: 22px;
+    line-height: 22px;
+  }
+ 
+  .uni-combox__input-plac {
+    font-size: 14px;
+    color: #999;
+  }
+ 
+  .uni-combox__selector {
+    /* #ifndef APP-NVUE */
+    box-sizing: border-box;
+    /* #endif */
+    position: absolute;
+    top: calc(100% + 12px);
+    left: 0;
+    width: 100%;
+    background-color: #FFFFFF;
+    border: 1px solid #EBEEF5;
+    border-radius: 6px;
+    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+    z-index: 3;
+    padding: 4px 0;
+  }
+ 
+  .uni-combox__selector-scroll {
+    /* #ifndef APP-NVUE */
+    max-height: 200px;
+    box-sizing: border-box;
+    /* #endif */
+  }
+ 
+  .uni-combox__selector-empty,
+  .uni-combox__selector-item {
+    /* #ifndef APP-NVUE */
+    display: flex;
+    cursor: pointer;
+    /* #endif */
+    line-height: 36px;
+    font-size: 14px;
+    text-align: center;
+    // border-bottom: solid 1px #DDDDDD;
+    padding: 0px 10px;
+    white-space: nowrap;
+    overflow: auto;
+  }
+ 
+  .uni-combox__selector-item::-webkit-scrollbar {
+    width: 0;
+    height: 0;
+  }
+ 
+  .uni-combox__selector-item:hover {
+    background-color: #f9f9f9;
+  }
+ 
+  .uni-combox__selector-empty:last-child,
+  .uni-combox__selector-item:last-child {
+    /* #ifndef APP-NVUE */
+    border-bottom: none;
+    /* #endif */
+  }
+ 
+  // picker 弹出层通用的指示小三角
+  .uni-popper__arrow,
+  .uni-popper__arrow::after {
+    position: absolute;
+    display: block;
+    width: 0;
+    height: 0;
+    border-color: transparent;
+    border-style: solid;
+    border-width: 6px;
+  }
+ 
+  .uni-popper__arrow {
+    filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+    top: -6px;
+    left: 10%;
+    margin-right: 3px;
+    border-top-width: 0;
+    border-bottom-color: #EBEEF5;
+  }
+ 
+  .uni-popper__arrow::after {
+    content: " ";
+    top: 1px;
+    margin-left: -6px;
+    border-top-width: 0;
+    border-bottom-color: #fff;
+  }
+ 
+  .uni-combox__no-border {
+    border: none;
+  }
+ 
+  .uni-combox__mask {
+    width: 100%;
+    height: 100%;
+    position: fixed;
+    top: 0;
+    left: 0;
+    z-index: 1;
+  }
+</style>

+ 90 - 0
uni_modules/uni-combox/package.json

@@ -0,0 +1,90 @@
+{
+  "id": "uni-combox",
+  "displayName": "uni-combox 组合框",
+  "version": "1.0.1",
+  "description": "可以选择也可以输入的表单项 ",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "combox",
+    "组合框",
+    "select"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": ""
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+  "dcloudext": {
+    "category": [
+      "前端组件",
+      "通用组件"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "无",
+      "data": "无",
+      "permissions": "无"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+  },
+  "uni_modules": {
+    "dependencies": [
+			"uni-scss",
+			"uni-icons"
+		],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "n"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "微信浏览器(Android)": "y",
+          "QQ浏览器(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "小程序": {
+          "微信": "y",
+          "阿里": "y",
+          "百度": "y",
+          "字节跳动": "y",
+          "QQ": "y"
+        },
+        "快应用": {
+          "华为": "u",
+          "联盟": "u"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}

+ 11 - 0
uni_modules/uni-combox/readme.md

@@ -0,0 +1,11 @@
+
+
+## Combox 组合框
+> **组件名:uni-combox**
+> 代码块: `uCombox`
+
+
+组合框组件。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-combox)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 

+ 1 - 1
uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue

@@ -246,7 +246,7 @@
 	.files__name {
 	.files__name {
 		flex: 1;
 		flex: 1;
 		font-size: 14px;
 		font-size: 14px;
-		color: #666;
+		// color: #666;
 		margin-right: 25px;
 		margin-right: 25px;
 		/* #ifndef APP-NVUE */
 		/* #ifndef APP-NVUE */
 		word-break: break-all;
 		word-break: break-all;

BIN
unpackage/dist/build/web.zip


File diff suppressed because it is too large
+ 1 - 1
unpackage/dist/build/web/index.html


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/web/static/js/index.7bc47a24.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/web/static/js/index.91f1b726.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/web/static/js/pages-404-404.a1eb1360.js


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/web/static/js/pages-404-404.f06ed168.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/web/static/js/pages-index-index.99a72c99.js


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/web/static/js/pages-index-index.d888b1ef.js


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/web/static/js/pages-project-addProject.dbddde7f.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/web/static/js/pages-project-addProject.f02bb866.js


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/web/static/js/pages-project-addProject~pages-project-addRenwu~pages-project-changeRenwu~pages-project-projectChang~dce6e7d1.16545640.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/web/static/js/pages-project-addProject~pages-project-addRenwu~pages-project-changeRenwu~pages-project-projectChang~dce6e7d1.1f88f1e7.js


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/web/static/js/pages-project-addProject~pages-project-projectChange.dc6e58a9.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/web/static/js/pages-project-addProject~pages-project-projectChange.f28e1406.js


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/web/static/js/pages-project-addRenwu.32ca17dd.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/web/static/js/pages-project-addRenwu.3949b179.js


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/web/static/js/pages-project-changeRenwu.58d88e0f.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/web/static/js/pages-project-changeRenwu.da8a5335.js


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/web/static/js/pages-project-index.7d7ed871.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/web/static/js/pages-project-index.98ddc2b0.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/web/static/js/pages-project-projectChange.1eee929c.js


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/web/static/js/pages-project-projectChange.d10c04af.js


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/web/static/js/pages-project-projectX.11e7bc21.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/web/static/js/pages-project-projectX.4c73c17f.js


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/build/web/static/js/pages-project-renwuUpdateJin.1a498f64.js


File diff suppressed because it is too large
+ 0 - 1
unpackage/dist/build/web/static/js/pages-project-renwuUpdateJin.c89897cf.js