YangJian0701 hace 7 meses
padre
commit
40f54fc3b6
Se han modificado 35 ficheros con 1505 adiciones y 188 borrados
  1. 26 0
      src/api/home.js
  2. 155 0
      src/api/msgValidationTemplate.js
  3. 9 0
      src/router/index.js
  4. 1 1
      src/utils/base.js
  5. 4 2
      src/views/CompanyAccount/index.vue
  6. 1 1
      src/views/ManagingUsers/index.vue
  7. 52 33
      src/views/companyManagement/index.vue
  8. 224 149
      src/views/layout/Topmenu.vue
  9. 121 0
      src/views/msgValidationTemplate/files.vue
  10. 766 0
      src/views/msgValidationTemplate/index.vue
  11. 96 0
      src/views/msgValidationTemplate/labelTag.vue
  12. 48 0
      src/views/msgValidationTemplate/pdf.vue
  13. BIN
      冷链2.0线上.rar
  14. 1 0
      冷链2.0线上/css/327.7177d1a3.css
  15. 0 0
      冷链2.0线上/css/516.52af3ce7.css
  16. 0 0
      冷链2.0线上/css/925.24e9c29f.css
  17. 0 1
      冷链2.0线上/css/97.7bb3a9aa.css
  18. 1 1
      冷链2.0线上/index.html
  19. 0 0
      冷链2.0线上/js/239.eb871fe6.js
  20. 0 0
      冷链2.0线上/js/239.eb871fe6.js.map
  21. 0 0
      冷链2.0线上/js/327.1649691e.js
  22. 0 0
      冷链2.0线上/js/327.1649691e.js.map
  23. 0 0
      冷链2.0线上/js/516.af6eac3a.js
  24. 0 0
      冷链2.0线上/js/516.af6eac3a.js.map
  25. 0 0
      冷链2.0线上/js/727.e2c9f6bf.js
  26. 0 0
      冷链2.0线上/js/727.e2c9f6bf.js.map
  27. 0 0
      冷链2.0线上/js/784.4e110969.js
  28. 0 0
      冷链2.0线上/js/784.4e110969.js.map
  29. 0 0
      冷链2.0线上/js/925.5812a284.js
  30. 0 0
      冷链2.0线上/js/925.5812a284.js.map
  31. 0 0
      冷链2.0线上/js/97.4305683e.js
  32. 0 0
      冷链2.0线上/js/97.4305683e.js.map
  33. 0 0
      冷链2.0线上/js/app.01dbe13b.js
  34. 0 0
      冷链2.0线上/js/app.01dbe13b.js.map
  35. 0 0
      冷链2.0线上/js/app.d1dcc777.js

+ 26 - 0
src/api/home.js

@@ -0,0 +1,26 @@
+// 登录接口
+import {
+	axios
+} from '../utils/http.js'
+
+const loginApi = {
+	UserUpPass: '/User/Up_Password',//用户修改密码
+	AdminUpPass: '/Admin/Up_Password',//管理员修改密码
+}
+
+//用户修改密码
+export function UserUpPass(data) {
+	return axios({
+		url: loginApi.UserUpPass,
+		method: 'post',
+		data:data
+	})
+}
+//管理员修改密码
+export function AdminUpPass(data) {
+	return axios({
+		url: loginApi.AdminUpPass,
+		method: 'post',
+		data:data
+	})
+}

+ 155 - 0
src/api/msgValidationTemplate.js

@@ -0,0 +1,155 @@
+
+// 登录接口
+import {
+	axios
+} from '../utils/http.js'
+
+const VT = {
+	TempList:'/InfoTemplate/Class_List',
+	TempClassAdd:'/InfoTemplate/Class_Add',
+	TempClassUp:'/InfoTemplate/Class_Up',
+	TempClassDel:'/InfoTemplate/Class_Del',
+	
+	
+	TempGet: '/InfoTemplate/List',
+	TempAdd: '/InfoTemplate/Add',
+	TempUp: '/VerifyTemplate/Up',
+	TempDel: '/InfoTemplate/Del',
+	
+	
+	Map_List: '/InfoTemplate/Map_List',
+	Map_Add: '/InfoTemplate/Map_Add',
+	Map_Up: '/InfoTemplate/Map_Up',
+	Map_Del: '/VerifyTemplate/Map_Del',
+	
+	Time_List: '/VerifyTemplate/Time_List',
+	Time_Add: '/VerifyTemplate/Time_Add',
+	Time_Up: '/VerifyTemplate/Time_Up',
+	Time_Del: '/VerifyTemplate/Time_Del',
+
+	TempCopy:'VerifyTemplate/Copy',//复制
+}
+export function TempCopy(data) {
+	return axios({
+		url: VT.TempCopy,
+		method: 'post',
+		data:data
+	})
+}
+export function TempClassDel(data) {
+	return axios({
+		url: VT.TempClassDel,
+		method: 'post',
+		data:data
+	})
+}
+export function TempClassUp(data) {
+	return axios({
+		url: VT.TempClassUp,
+		method: 'post',
+		data:data
+	})
+}
+export function TempClassAdd(data) {
+	return axios({
+		url: VT.TempClassAdd,
+		method: 'post',
+		data:data
+	})
+}
+
+export function TempList(data) {
+	return axios({
+		url: VT.TempList,
+		method: 'post',
+		data:data
+	})
+}
+export function Time_Del(data) {
+	return axios({
+		url: VT.Time_Del,
+		method: 'post',
+		data:data
+	})
+}
+export function Time_Up(data) {
+	return axios({
+		url: VT.Time_Up,
+		method: 'post',
+		data:data
+	})
+}
+export function Time_Add(data) {
+	return axios({
+		url: VT.Time_Add,
+		method: 'post',
+		data:data
+	})
+}
+export function Time_List(data) {
+	return axios({
+		url: VT.Time_List,
+		method: 'post',
+		data:data
+	})
+}
+export function Map_Del(data) {
+	return axios({
+		url: VT.Map_Del,
+		method: 'post',
+		data:data
+	})
+}
+export function Map_Up(data) {
+	return axios({
+		url: VT.Map_Up,
+		method: 'post',
+		data:data
+	})
+}
+export function Map_Add(data) {
+	return axios({
+		url: VT.Map_Add,
+		method: 'post',
+		data:data
+	})
+}
+
+export function Map_List(data) {
+	return axios({
+		url: VT.Map_List,
+		method: 'post',
+		data:data
+	})
+}
+
+
+export function TempDel(data) {
+	return axios({
+		url: VT.TempDel,
+		method: 'post',
+		data:data
+	})
+}
+
+export function TempUp(data) {
+	return axios({
+		url: VT.TempUp,
+		method: 'post',
+		data:data
+	})
+}
+export function TempAdd(data) {
+	return axios({
+		url: VT.TempAdd,
+		method: 'post',
+		data:data
+	})
+}
+export function TempGet(data) {
+	return axios({
+		url: VT.TempGet,
+		method: 'post',
+		data:data
+	})
+}

+ 9 - 0
src/router/index.js

@@ -73,6 +73,15 @@ const routes = [
 				title: '校准证书管理',
 				authority:1//0全显示,1管理,2用户
 			},
+		},{
+			path: '/msgValidationTemplate',
+			name: 'msgValidationTemplate',
+			icons:'icon_renwumobanguanli',
+			component: () => import('@/views/msgValidationTemplate/index.vue'),
+			meta: {
+				title: '信息采集模板管理',
+				authority:1//0全显示,1管理,2用户
+			},
 		}]
 	},{
 		path: '*',

+ 1 - 1
src/utils/base.js

@@ -5,8 +5,8 @@ besURL = 'https://coldverify.coldbaozhida.com/api/'//生产环境 production
 devURL = 'https://coldverify.coldbaozhida.com/testapi'//测试环境 development
 
 module.exports = {
+	// baseURL:process.env.NODE_ENV=="development"?devURL:besURL,
 	baseURL:process.env.NODE_ENV=="development"?devURL:besURL,
-	// baseURL:process.env.NODE_ENV=="development"?besURL:besURL,
 
 
 	showHttpLog:showHttpLog

+ 4 - 2
src/views/CompanyAccount/index.vue

@@ -23,7 +23,9 @@
 								@click="handleEdit2(scope.row)">验证报告</el-button>
 							<el-button size="small" :disabled="scope.row.T_reporting_state==0?true:false"
 								@click="handleEdit3(scope.row)">校准证书</el-button>
-							<el-button size="small" @click="handleEdit4(scope.row)">验证数据</el-button>
+							<el-button size="small"
+                             :disabled="scope.row.T_delivery_state!=1?true:false"
+                            @click="handleEdit4(scope.row)">验证数据</el-button>
 						</template>
 					</el-table-column>
 				</el-table>
@@ -54,7 +56,7 @@
 					<div class="demoDra1-L s1">
                         <el-button type="primary" icon="el-icon-download" @click="downloadFun('t')">下载温度</el-button>
                         <el-button type="primary" icon="el-icon-download" @click="downloadFun('h')">下载湿度</el-button>
-						<el-button type="primary" icon="el-icon-download" @click="Dowload">下载pdf</el-button>
+						<!-- <el-button type="primary" icon="el-icon-download" @click="Dowload">下载pdf</el-button>-->
 					</div>
 				</div>
 				<div class="demoDra2">

+ 1 - 1
src/views/ManagingUsers/index.vue

@@ -60,7 +60,7 @@
 						<el-input v-model="form.T_user" autocomplete="off"></el-input>
 					</el-form-item>
 					<el-form-item label="密码" :label-width="LabelWidth" prop="T_pass">
-						<el-input v-model="form.T_pass" autocomplete="off" maxlength="18" show-password></el-input>
+						<el-input v-model="form.T_pass" autocomplete="off" maxlength="20" show-password></el-input>
 					</el-form-item>
 					<el-form-item :label-width="LabelWidth">
 						<el-button type="primary"  @click="submitForm('ruleForm')">

+ 52 - 33
src/views/companyManagement/index.vue

@@ -244,7 +244,11 @@
 								icon="el-icon-download" @click="ShowPdf(0,BaoGaoData.T_pdf2)">验证报告</el-button>
 							<el-button type="primary" :disabled="BaoGaoData.T_collection_state==0?true:false" size="small"
 								icon="el-icon-download" @click="ShowPdf(1,BaoGaoData)">校准证书</el-button>
-							<el-button type="primary" size="small" icon="el-icon-download" @click="Dowload">下载验证数据
+							<!-- <el-button type="primary" size="small" icon="el-icon-download" @click="Dowload">下载验证数据
+							</el-button> -->
+                            <el-button type="primary" size="small" icon="el-icon-download" @click="downloadFun('t')">下载温度
+							</el-button>
+                            <el-button type="primary" size="small" icon="el-icon-download" @click="downloadFun('h')">下载湿度
 							</el-button>
 
 						</div>
@@ -403,12 +407,15 @@
 		TaskDel,
 		TaskGet,
 		TaskEx,
-		DowloadExc,
 		tempClassList,
 		devClassListlist
 	} from "@/api/companyManagement"
+    import {
+		download_t_pdfs,
+        download_h_pdfs
+	} from '@/api/CompanyAccount'
 	import pdf from "./pdf"
-	import download from "downloadjs"
+    import { downloadPDF } from "@/utils/download.js";
 	export default {
 		name: 'companyManagement',
 		components: {
@@ -576,20 +583,6 @@
 				radio1: '',
 			}
 		},
-		// watch:{
-		// 	innerDrawer(val){
-		// 		if(!val){
-		// 			// this.cascaderData = ''
-		// 			for(let obj in this.form1){
-		// 				console.log(obj)
-		// 				if(obj!='T_task_id'){
-		// 					this.form1[obj] = ''
-		// 				}
-		// 			}
-		// 		}
-		// 		console.log('变化',this.form1)
-		// 	}
-		// },
 		mounted() {
 			this.GetUserListApi()
 		},
@@ -991,28 +984,54 @@
 				this.form2.page = val
 				this.GetTaskExApi()
 			},
-			Dowload() { //下载数据
-				console.log('下载', this.form2, pams)
-				var pams = {
-					T_task_id: this.form2.T_task_id,
-					T_sn_list: '',
-					Time_start: this.form2.Time_start,
-					Time_end: this.form2.Time_end
-				}
+             /**
+             * 下载温湿度
+             */
+             async downloadFun(str){
+                var pams = {
+                    T_task_id: this.form2.T_task_id,
+                    T_id: this.form2.T_layout_no,
+                    Time_start: this.form2.Time_start,
+                    Time_end: this.form2.Time_end
+                }
 				const loading = this.$loading({
 					lock: true,
 					text: '正在整理数据,请稍后...',
 					spinner: 'el-icon-loading',
 					background: 'rgba(0, 0, 0, 0.7)'
 				});
-				DowloadExc(pams).then(res => {
-					console.log(res)
-					if (res.data.Code === 200) {
-						loading.close()
-						download(res.data.Data);
-					}
-				})
-			},
+                const result = str=='t'?await download_t_pdfs(pams):await download_h_pdfs(pams)
+                console.log('下载',result)
+                loading.close()
+                if (result.status) {
+                    downloadPDF(result,str=='t'?'温度':'湿度')
+                }
+            },
+			// downloadFun() { //下载数据
+			// 	var pams = {
+			// 		T_task_id: this.form2.T_task_id,
+			// 		T_sn_list: '',
+			// 		Time_start: this.form2.Time_start,
+			// 		Time_end: this.form2.Time_end
+			// 	}
+			// 	console.log('下载', this.form2, pams,this.BaoGaoData)
+
+            //     return
+
+			// 	const loading = this.$loading({
+			// 		lock: true,
+			// 		text: '正在整理数据,请稍后...',
+			// 		spinner: 'el-icon-loading',
+			// 		background: 'rgba(0, 0, 0, 0.7)'
+			// 	});
+			// 	DowloadExc(pams).then(res => {
+			// 		console.log(res)
+			// 		if (res.data.Code === 200) {
+			// 			loading.close()
+			// 			download(res.data.Data);
+			// 		}
+			// 	})
+			// },
 		}
 	}
 </script>

+ 224 - 149
src/views/layout/Topmenu.vue

@@ -1,163 +1,238 @@
 <template>
-	<div class="Topmenu">
-		<div class="TopmenuPir">
-			<div class="TopmenuPir-logo">
-				<div class="TopmenuPir-logo1">
-					<img src="@/assets/img/logo2-1.png" alt="logo">
-				</div>
-				<div class="TopmenuPir-logo2">
-					<img src="@/assets/img/logo2-2.png" alt="logo">
-				</div>
-			</div>
-			<div class="TopmenuPir-mai">
-				<div class="TopmenuPir-mai-ul">
-					<el-popover placement="top-start" title="系统消息" trigger="hover"
-						content="接收系统下发的新消息">
-						<div slot="reference" class="TopmenuPir-mai-ul-li" @click="SetMenu(1)">
-							<i class="el-icon-bell" style="font-size: 26px;"></i>
-						</div>
-					</el-popover>
-					<el-popover placement="top-start" title="更换主题" trigger="hover"
-						content="更改系统整体风格,字体颜色,背景色等等">
-						<div slot="reference" class="TopmenuPir-mai-ul-li" @click="SetMenu(2)">
-							<i class="el-icon-magic-stick" style="font-size: 26px;"></i>
-						</div>
-					</el-popover>
-					<el-popover placement="top-start" title="全屏/正常模式" trigger="hover"
-						content="切换全屏或者正常展示模式">
-						<div slot="reference" class="TopmenuPir-mai-ul-li" @click="quan"><i class="el-icon-monitor" style="font-size: 26px;"></i></div>
-					</el-popover>
-					<div class="TopmenuPir-mai-ul-li">
-						<el-dropdown @command="commands">
-							<div class="el-dropdown-link dropdown-links" style="">
-								<i class="el-icon-user" style="font-size: 26px;"></i>
-							</div>
-							<el-dropdown-menu slot="dropdown">
-								<el-dropdown-item command="a">设置</el-dropdown-item>
-								<el-dropdown-item command="b">个人信息</el-dropdown-item>
-								<el-dropdown-item command="c">退出登录</el-dropdown-item>
-							</el-dropdown-menu>
-						</el-dropdown>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
+    <div class="Topmenu">
+        <div class="TopmenuPir">
+            <div class="TopmenuPir-logo">
+                <div class="TopmenuPir-logo1">
+                    <img src="@/assets/img/logo2-1.png" alt="logo">
+                </div>
+                <div class="TopmenuPir-logo2">
+                    <img src="@/assets/img/logo2-2.png" alt="logo">
+                </div>
+            </div>
+            <div class="TopmenuPir-mai">
+                <div class="TopmenuPir-mai-ul">
+                    <el-popover placement="top-start" title="系统消息" trigger="hover" content="接收系统下发的新消息">
+                        <div slot="reference" class="TopmenuPir-mai-ul-li" @click="SetMenu(1)">
+                            <i class="el-icon-bell" style="font-size: 26px;"></i>
+                        </div>
+                    </el-popover>
+                    <el-popover placement="top-start" title="更换主题" trigger="hover" content="更改系统整体风格,字体颜色,背景色等等">
+                        <div slot="reference" class="TopmenuPir-mai-ul-li" @click="SetMenu(2)">
+                            <i class="el-icon-magic-stick" style="font-size: 26px;"></i>
+                        </div>
+                    </el-popover>
+                    <el-popover placement="top-start" title="全屏/正常模式" trigger="hover" content="切换全屏或者正常展示模式">
+                        <div slot="reference" class="TopmenuPir-mai-ul-li" @click="quan"><i class="el-icon-monitor"
+                                style="font-size: 26px;"></i></div>
+                    </el-popover>
+                    <div class="TopmenuPir-mai-ul-li">
+                        <el-dropdown @command="commands">
+                            <div class="el-dropdown-link dropdown-links" style="">
+                                <i class="el-icon-user" style="font-size: 26px;"></i>
+                            </div>
+                            <el-dropdown-menu slot="dropdown">
+                                <el-dropdown-item command="a">设置</el-dropdown-item>
+                                <el-dropdown-item command="b">个人信息</el-dropdown-item>
+                                <el-dropdown-item command="c">修改密码</el-dropdown-item>
+                                <el-dropdown-item command="d">退出登录</el-dropdown-item>
+                            </el-dropdown-menu>
+                        </el-dropdown>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <el-dialog title="修改密码" :visible.sync="dialogVisible" width="400px" :close-on-click-modal="false">
+            <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" class="demo-ruleForm">
+                <el-form-item label="旧密码" prop="T_oldpass">
+                    <el-input type="password" v-model="ruleForm.T_oldpass" show-password></el-input>
+                </el-form-item>
+                <el-form-item label="新密码" prop="T_pass">
+                    <el-input type="password" v-model="ruleForm.T_pass" show-password></el-input>
+                </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button @click="dialogVisible = false">取 消</el-button>
+                <el-button type="primary" @click="submitForm('ruleForm')"">提 交</el-button>
+            </div>
+        </el-dialog>
+    </div>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-
-			}
-		},
-		methods: {
-			SetMenu(e){
-				this.$notify.info({
-					title: '错误提示',
-					message: '功能正在更新中,敬请留意',
-					offset: 100
-				});
-			},
-			commands(e){
-				console.log(e)
-				switch(e){
-					case 'a':
-						this.$notify.info({
-							title: '错误提示',
-							message: '功能正在更新中,敬请留意',
-							offset: 100
-						});
-						break
-					case 'b':
-						this.$notify.info({
-							title: '错误提示',
-							message: '功能正在更新中,敬请留意',
-							offset: 100
-						});
-						break
-					default:
-					this.$router.replace('/')
-				}
-			},
-			quan() {//全屏
-				if (window.innerHeight === window.screen.height) { // 利用屏幕分辨率和window对象的内高度来判断兼容IE
-					document.exitFullscreen()
-				} else {
-					document.documentElement.requestFullscreen()
-				}
-			},
-		}
-	}
+import { UserUpPass,AdminUpPass } from "@/api/home.js";
+export default {
+    data() {
+        return {
+            dialogVisible:false,
+            ruleForm: {
+                T_pass:'',//新密码
+                T_passstr: '',//明文  用户端要传,管理员端可不传
+                T_oldpass: ''//旧密码
+            },
+            rules: {
+                T_pass: [
+                    { required: true, message: '请输入新密码', trigger: ['change','blur']},
+                    { min: 6, max: 18, message: '新密码长度在 6到 18 位', trigger: ['change','blur'] }
+                ],
+                T_oldpass: [
+                    { required: true, message: '请输入旧密码', trigger: ['change','blur'] },
+                    { min: 6, max: 18, message: '旧密码长度在 6 到 18 位', trigger: ['change','blur'] }
+                ],
+            }
+        }
+    },
+    methods: {
+        submitForm(formName) {
+            this.$refs[formName].validate((valid) => {
+            if (valid) {
+                let rules = this.$store.state.userInfo.value
+                if (rules==1) {//管理员
+                    let initParam = {
+                        T_pass:this.$md5(this.ruleForm.T_pass),
+                        T_oldpass:this.$md5(this.ruleForm.T_oldpass),
+                    }
+                    this.resetRequest(rules,initParam)
+                }else{//用户
+                    let initParam = {
+                        T_pass:this.$md5(this.ruleForm.T_pass),
+                        T_passstr:this.ruleForm.T_pass,
+                        T_oldpass:this.$md5(this.ruleForm.T_oldpass),
+                    }
+                    this.resetRequest(rules,initParam)
+                }
+            } else {
+                return false;
+            }
+            });
+        },
+        async resetRequest(rules,initParam){
+            const {data:result} = rules==1?await AdminUpPass(initParam): await UserUpPass(initParam)
+            if(result.Code==200){
+                this.$store.commit('setuserInfo', {
+                    username: '',
+                    password: '',
+                    value:'2',
+                    token:''
+                })
+                this.$message.success('重置密码成功')
+                setTimeout(()=>this.$router.replace('/'), 1000)
+            }
+        },
+        resetForm(formName) {
+            if(this.$refs[formName])this.$refs[formName].resetFields();
+        },
+        SetMenu(e) {
+            this.$notify.info({
+                title: '错误提示',
+                message: '功能正在更新中,敬请留意',
+                offset: 100
+            });
+        },
+        commands(e) {
+            switch (e) {
+                case 'a':
+                    this.$notify.info({
+                        title: '错误提示',
+                        message: '功能正在更新中,敬请留意',
+                        offset: 100
+                    });
+                    break
+                case 'b':
+                    this.$notify.info({
+                        title: '错误提示',
+                        message: '功能正在更新中,敬请留意',
+                        offset: 100
+                    });
+                    break
+                case 'c':
+                    this.dialogVisible = true
+                    this.resetForm('ruleForm')
+                    break
+                default:
+                    this.$router.replace('/')
+            }
+        },
+        quan() {//全屏
+            if (window.innerHeight === window.screen.height) { // 利用屏幕分辨率和window对象的内高度来判断兼容IE
+                document.exitFullscreen()
+            } else {
+                document.documentElement.requestFullscreen()
+            }
+        },
+    }
+}
 </script>
 
 <style lang="scss">
-	.Topmenu {
-		background-color: #3a394e;
-		height: 60px;
-		color: #fff;
-		.TopmenuPir {
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			height: 100%;
-			padding-right: 0 15px;
+.Topmenu {
+    background-color: #3a394e;
+    height: 60px;
+    color: #fff;
+
+    .TopmenuPir {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        height: 100%;
+        padding-right: 0 15px;
+
+        .TopmenuPir-mai {
+            color: #fff !important;
+
+            .TopmenuPir-mai-ul {
+                display: flex;
+                align-items: center;
+
+                .TopmenuPir-mai-ul-li {
+                    margin-right: 30px;
+                    cursor: pointer;
 
-			.TopmenuPir-mai {
-				color: #fff !important;
+                    .dropdown-links {
+                        width: 30px;
+                        height: 30px;
+                        background: #fff;
+                        border-radius: 50%;
+                        display: flex;
+                        align-items: center;
+                        justify-content: center;
+                        outline: none;
+                    }
+                }
+            }
+        }
 
-				.TopmenuPir-mai-ul {
-					display: flex;
-					align-items: center;
+        .TopmenuPir-logo {
+            height: 60px;
+            display: flex;
+            align-items: center;
 
-					.TopmenuPir-mai-ul-li {
-						margin-right: 30px;
-						cursor: pointer;
+            .TopmenuPir-logo1 {
+                width: 80px;
+                height: 80px;
+                display: flex;
+                justify-content: center;
+                align-items: center;
 
-						.dropdown-links {
-							width: 30px;
-							height: 30px;
-							background: #fff;
-							border-radius: 50%;
-							display: flex;
-							align-items: center;
-							justify-content: center;
-							outline: none;
-						}
-					}
-				}
-			}
+                // background: #fff;
+                img {
+                    width: 60%;
+                    height: 60%;
+                    object-fit: contain;
+                }
+            }
 
-			.TopmenuPir-logo {
-				height: 60px;
-				display: flex;
-				align-items: center;
-				.TopmenuPir-logo1 {
-					width: 80px;
-					height: 80px;
-					display: flex;
-					justify-content: center;
-					align-items: center;
-					// background: #fff;
-					img {
-						width: 60%;
-						height: 60%;
-						object-fit: contain;
-					}
-				}
+            .TopmenuPir-logo2 {
+                height: 60px;
+                display: flex;
+                margin-left: 10px;
+                align-items: center;
 
-				.TopmenuPir-logo2 {
-					height: 60px;
-					display: flex;
-					margin-left: 10px;
-					align-items: center;
-					img {
-						width: auto;
-						height: 100%;
-					}
-				}
-			}
-		}
-	}
+                img {
+                    width: auto;
+                    height: 100%;
+                }
+            }
+        }
+    }
+}
 </style>

+ 121 - 0
src/views/msgValidationTemplate/files.vue

@@ -0,0 +1,121 @@
+<template>
+	<div class="files">
+		<div class="files-mai">
+			<div class="files-mai1">
+				<img src="@/assets/img/flies.png" alt="" srcset="">
+				<div>点击虚线框内,<span style="color: #409EFF;">上传文件</span></div>
+			</div>
+			<input type="file" accept="application/pdf" @change="files"
+				style="position: absolute;left: 0;top: 0;width: 100%;height: 100%;opacity:0;cursor: pointer;">
+		</div>
+	</div>
+</template>
+
+<script>
+	import {
+		PDFToken
+	} from "@/api/pdfToken.js";
+	import * as qiniu from 'qiniu-js';
+	export default {
+		data() {
+			return {
+				file: null, //点击上传的pdf资源包
+				qiniuToken: null,
+			}
+		},
+		methods: {
+			files(e) { //上传图片到七牛云拿url
+				console.log(e)
+				var _this = this
+				this.file = e.target.files[0];
+				var strtype = this.file.name.substring(this.file.name.lastIndexOf('.') + 1); //获取后缀 png jpg
+				PDFToken({
+					T_suffix: strtype
+				}).then(res => {
+					if (res.data.Code == 200) {
+						_this.qiniuToken = res.data.Data
+						_this.QiniuYun()
+					} else {
+						_this.$message.error(res.data.Msg);
+					}
+				})
+			},
+			QiniuYun() {
+				var _this = this
+				var key = _this.file.name || null;
+				var config = {
+					useCdnDomain: false, //表示是否使用 cdn 加速域名,为布尔值,true 表示使用,默认为 false。
+					region: qiniu.region.z2,
+					domain: "https://qiniu.region.z2", //配置好的七牛云域名  如   https://cdn.qniyun.com/
+					chunkSize: 1000, //每个分片的大小,单位mb,默认值3
+					forceDirect: false //直传还是断点续传方式,true为直传
+				};
+				var putExtra = {
+					fname: _this.file.name, //文件原始文件名
+					params: {},
+					mimeType: [] || null
+				};
+				var observable = qiniu.upload(_this.file, key, _this.qiniuToken, putExtra, config);
+				//   设置实例的监听对象
+				var observer = {
+					next(res) {
+						//上传进度
+						_this.filePercent = parseInt(res.total.percent)
+						if (_this.filePercent === 100) {
+							console.log('实例监听对象', res)
+						}
+						//
+					},
+					// 接收上传错误信息
+					error(err) {
+						switch (err.code) {
+							case 413:
+								_this.$message.error('错了哦,图片可能太大了哦');
+								break
+							case 408:
+								_this.$message.error('错了哦,请求超时');
+								break
+							default:
+								_this.$message.error('错了哦,上传错误');
+						}
+					},
+					// 接收上传完成后的信息
+					complete(com) {
+						console.log('七牛云返回',com)
+						_this.$emit('pdfvalue', com.key);
+					}
+				};
+				observable.subscribe(observer);
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.files-mai {
+		border: 1px dashed #d9d9d9;
+		border-radius: 6px;
+		position: relative;
+		height: 150px;
+
+		.files-mai1 {
+			height: 100%;
+			color: #606266;
+			font-size: 14px;
+			text-align: center;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			justify-content: center;
+
+			img {
+				width: 60px;
+				height: 60px;
+			}
+		}
+	}
+
+	.files-mai:hover {
+		border: 1px dashed #409EFF;
+	}
+</style>

+ 766 - 0
src/views/msgValidationTemplate/index.vue

@@ -0,0 +1,766 @@
+<template>
+	<div class="ValidationTemplate">
+		<div class="ValidationTemplate1">
+			<div class="ValidationTemplate1-L">
+				<el-button type="primary" @click="addClass(0)" icon="el-icon-plus">新增分类</el-button>
+			</div>
+			<div class="ValidationTemplate1-R">
+				<!-- <div class="ValidationTemplate1-Rtx">
+					搜索:
+				</div>
+				<el-input v-model="pages.T_name" placeholder="请输入模板名称" @keyup.enter.native="search" clearable>
+				</el-input> -->
+			</div>
+		</div>
+		<div class="ValidationTemplate2">
+			<el-table :data="tableData" style="width: 100%;margin-bottom: 20px;" row-key="Id" border
+				:tree-props="{ children: 'Children', hasChildren: 'hasChildren' }">
+				<el-table-column prop="T_name" label="模板分类名称">
+				</el-table-column>
+				<el-table-column label="操作" :show-overflow-tooltip="true">
+					<template slot-scope="scope">
+						<el-button size="small" @click="goTemes(scope.row)">进入分类</el-button>
+						<el-button size="small" @click="addClass(scope.row)">添加分类</el-button>
+						<el-button size="small" @click="setedit(scope.row)">编辑</el-button>
+						<el-button size="small" @click="setDel(scope.row)">删除</el-button>
+					</template>
+				</el-table-column>
+			</el-table>
+		</div>
+		<el-drawer title="验证模板" :visible.sync="drawer" direction="rtl" size="80%">
+			<div class="demo-drawers">
+				<div class="ValidationTemplate1" style="margin-bottom: 10px;">
+					<div class="ValidationTemplate1-L">
+						<el-button type="primary" icon="el-icon-plus" @click="Newtemp">新增模板</el-button>
+					</div>
+					<div class="ValidationTemplate1-R">
+						<div class="ValidationTemplate1-Rtx">
+							搜索:
+						</div>
+						<el-input v-model="pages.T_name" placeholder="请输入模板名称" @keyup.enter.native="searchFun" clearable>
+						</el-input>
+					</div>
+				</div>
+				<el-table :data="tempTableData" border size="small">
+					<el-table-column label="模板名称" width="250">
+						<template slot-scope="scope">
+							<span @click.stop="setclickFun(scope)" style="cursor: pointer;">{{ scope.row.T_name }}</span>
+						</template>
+					</el-table-column>
+					<el-table-column label="操作">
+						<template slot-scope="scope">
+							<div style="display: flex;">
+								<el-button size="small" @click="handlelabel(scope.row)">标签</el-button>
+								<!-- <el-button size="small" @click="handleReport(scope.row, 'inspection')">自检
+								</el-button>
+								<el-button size="small" @click="handleReport(scope.row, 'Scheme')">方案
+								</el-button>
+								<el-button size="small" @click="handleReport(scope.row, 'Report')">报告
+								</el-button> -->
+								<el-button size="small" @click="handleDelete(scope.row)">删除
+								</el-button>
+								<!-- <el-button size="small" @click="handleCopy(scope.row)">复制
+								</el-button> -->
+							</div>
+						</template>
+					</el-table-column>
+				</el-table>
+				<div class="ValidationTemplate3">
+					<el-pagination @current-change="handleCurrentChange" :current-page="pages.page"
+						:page-size="pages.page_z" layout="total, prev, pager, next, jumper" :total="total">
+					</el-pagination>
+				</div>
+				<el-drawer title="标签列表" :visible.sync="Drawer1" direction="rtl" :append-to-body="true" ref="drawer"
+					size="70%">
+					<div class="demo-drawers">
+						<el-button type="primary" icon="el-icon-plus" @click="hedEdit('add')">添加标签</el-button>
+						<div style="margin-top: 10px;">
+							<el-table :data="tagTableData" border size="mini">
+								<el-table-column align="left" width="80px">
+									<template #header>
+										<div style="display: flex;align-items: center;">
+											<div style="margin-right:10px;">排序</div>
+											<div @click="sortchange(pages2.T_sort, 'sort')"
+												style="display: flex;align-items: center;flex-direction: column;justify-content: center;cursor: pointer;">
+												<i :class="pages2.T_sort == 1 ? 'icon-bg-on' : 'icon-bg-off'"
+													class="el-icon-caret-top"
+													style="margin-bottom: -4px;font-size: 14px;"></i>
+												<i :class="pages2.T_sort == 2 ? 'icon-bg-on' : 'icon-bg-off'"
+													class="el-icon-caret-bottom"
+													style="margin-top: -4px;font-size: 14px;"></i>
+											</div>
+										</div>
+									</template>
+									<template slot-scope="scope">
+										<span>{{ scope.row.T_sort }}</span>
+									</template>
+								</el-table-column>
+								<el-table-column label="标签名称" width="200" :show-overflow-tooltip="true">
+									<template slot-scope="scope">
+										<span>{{ scope.row.T_name }}</span>
+									</template>
+								</el-table-column>
+								<el-table-column label="数据类型" width="80" :show-overflow-tooltip="true">
+									<template slot-scope="scope">
+										<span>{{ scope.row.T_label | lableData(scope.row.T_label) }}</span>
+									</template>
+								</el-table-column>
+                                <el-table-column label="描述" :show-overflow-tooltip="true">
+									<template slot-scope="scope">
+										<span>{{ scope.row.T_text}}</span>
+									</template>
+								</el-table-column>
+								<el-table-column label="操作">
+									<template slot-scope="scope">
+										<div style="display: flex;">
+											<el-button size="small" @click="hedEdit(scope.row, 'edit')">编辑</el-button>
+											<el-button size="small" @click="hedDel(scope.row)">删除</el-button>
+										</div>
+									</template>
+								</el-table-column>
+							</el-table>
+						</div>
+						<el-drawer :title="titles" :append-to-body="true" :visible.sync="innerDrawer2">
+							<!-- 时间流程按钮后的编辑 -->
+							<div style="padding: 20px;">
+								<el-form :model="form" :rules="rules" ref="ruleForm">
+									<el-form-item label="数据类型" label-width="80px" prop="T_label">
+										<el-select v-model="form.T_label" placeholder="请选择数据类型">
+											<el-option label="公共参数" value="0"></el-option>
+											<el-option label="文本" value="1"></el-option>
+											<el-option label="数量" value="2"></el-option>
+											<el-option label="设备多选" value="3"></el-option>
+											<el-option label="设备单选" value="4"></el-option>
+											<el-option label="分割线" value="5"></el-option>
+											<el-option label="当期时间" value="7"></el-option>
+											<el-option label="当期时间(开始与结束时间)" value="9"></el-option>
+											<el-option label="图片" value="10"></el-option>
+											<el-option label="CAD" value="11"></el-option>
+											<el-option label="注释-当期时间" value="12"></el-option>
+											<el-option label="注释-当期时间(开始与结束)" value="13"></el-option>
+										</el-select>
+									</el-form-item>
+									<el-form-item label="标签名称" label-width="80px" prop="T_name">
+										<el-input v-model="form.T_name" autocomplete="off"></el-input>
+									</el-form-item>
+									<el-form-item label="排序" label-width="80px">
+										<el-input v-model="form.T_sort" autocomplete="off"
+											@input="form.T_flow_sort = form.T_sort"></el-input>
+									</el-form-item>
+									<el-form-item label="描述" label-width="80px"
+										v-if="['0', '1', '2', '7', '9', '12', '13'].includes(form.T_label)">
+										<el-input type="textarea" v-model="form.T_text"></el-input>
+									</el-form-item>
+									<el-form-item label="描述" label-width="80px"
+										v-if="['3', '4', '10', '11'].includes(form.T_label)">
+										<files @pdfvalue="fliValue" :accepts="'image/*'"></files>
+										<div style="margin-top: 5px;line-height: 0 ;">
+											<div style="height: 20px;color: #409EFF;">
+												<div v-if="form.T_text != ''" style="display: flex;align-items: center;">
+													<i class="el-icon-circle-check"></i>
+													<div style="font-size: 12px;padding-left: 1px;">文件已上传,</div>
+													<div style="font-size: 12px;cursor: pointer;text-decoration: underline;"
+														@click="showImg">查看图片</div>
+												</div>
+											</div>
+										</div>
+									</el-form-item>
+									<el-form-item label-width="80px">
+										<el-button type="primary" @click="submitForm('ruleForm')">
+											确 定
+										</el-button>
+										<el-button @click="innerDrawer2 = false">取 消</el-button>
+									</el-form-item>
+								</el-form>
+							</div>
+						</el-drawer>
+					</div>
+				</el-drawer>
+				<el-drawer :title="draTit" :visible.sync="Drawer2" direction="rtl" :append-to-body="true" ref="drawer">
+					<div class="drawer-upload">
+						<el-upload ref="uploadFile" class="upload-demo" drag
+							action="http://coldverifylocal.coldbaozhida.com/GenerateReport/upload" :auto-upload='false'
+							accept=".doc, .docx" :on-success="successFun" :on-error="errorFun" :multiple="false">
+							<i class="el-icon-upload"></i>
+							<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+							<div class="el-upload__tip" slot="tip">只能上传doc/docx文件,不支持上传其他类型文件</div>
+						</el-upload>
+						<!-- <yfile></yfile> -->
+						<el-button type="primary" @click="submit" style="margin: 50px auto 0 auto;">立即提交</el-button>
+					</div>
+				</el-drawer>
+			</div>
+		</el-drawer>
+		<el-dialog title="图片查看" :visible.sync="dialogVisible">
+			<div>
+				<img :src="imgUrl" alt="" srcset="">
+			</div>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+var arrLabel = [
+	{ label: 1, text: '文本' },
+	{ label: 2, text: '数量' },
+	{ label: 3, text: '设备多选' },
+	{ label: 4, text: '设备单选' },
+	{ label: 5, text: '分割线' },
+	{ label: 7, text: '当期时间' },
+	{ label: 9, text: '当期时间(开始与结束时间)' },
+	{ label: 10, text: '图片' },
+	{ label: 11, text: 'CAD' },
+	{ label: 12, text: '注释-当期时间' },
+	{ label: 13, text: '注释-当期时间(开始与结束)' },
+]
+import {
+	TempList,
+	TempGet,
+	TempClassAdd,
+	TempClassUp,
+	TempClassDel,
+	TempAdd,
+	TempDel,
+	Map_List,
+	Map_Del,
+	Map_Add,
+	Map_Up,
+	TempUp, TempCopy
+} from '@/api/msgValidationTemplate'
+import {
+	PDFToken
+} from "@/api/pdfToken.js";
+import files from "@/components/files"
+import yfile from "@/components/yFiles"
+import axios from "axios"
+export default {
+	name: 'ValidationTemplate',
+	components: { files, yfile },
+	filters: {
+		lableData(e) {
+			const resIt = arrLabel.find(item => {
+				return item.label == e
+			})
+			return resIt.text
+		}
+	},
+	data() {
+		return {
+			imgUrl: '',
+			dialogVisible: false,
+			draTit: '',
+			Drawer1: false,
+			innerDrawer2: false,
+			titles: '',
+			form: { //新增编辑的提交参数
+				T_InfoTemplate_id: '',
+				T_id: '',
+				T_label: '',//数据类型
+				T_name: '',//标签名称
+				T_text: '',//描述图片路径
+				T_sort: '',//排序
+			},
+			dirform: { //方案报告提交参数
+			},
+			rules: {
+				T_source: [{
+					required: true,
+					message: '请选择来源',
+					trigger: 'change'
+				},],
+				T_label: [{
+					required: true,
+					message: '请选择数据类型',
+					trigger: 'change'
+				}],
+				T_name: [{
+					required: true,
+					message: '请输入标签名称',
+					trigger: 'blur'
+				},],
+			},
+			Drawer2: false,
+			tagTableData: [],
+			pages2: {//标签列表参数
+				T_InfoTemplate_id: '',
+				T_sort: 1,//0默认 1升序 2降序
+				T_flow_sort: 0,//0默认 1升序 2降序
+			},
+
+			LabelWidth: "80px",
+			drawer: false,
+			//模板列表参数
+			pages: {
+				page: 1,
+				page_z: 10,
+				T_name: '',
+				T_class: null,
+			},
+			//添加分类参数
+			pages1: {
+				T_name: '',
+				T_fid: 0,
+			},
+			total: 0,
+			tableData: [],
+			tempTableData: []
+		}
+	},
+	watch: {
+		Drawer1(newVal) {
+			newVal ? '' : this.pages2.T_flow_sort = 0; this.pages2.T_sort = 1
+		}
+	},
+	mounted() {
+		this.getTempApi()
+	},
+	methods: {
+		setclickFun(scope) {
+			this.$prompt('请输入模板名称', '编辑', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				inputPattern:/\S/,
+				inputValue: scope.row.T_name,
+				inputErrorMessage: '模板名称不能为空'
+			}).then(({ value }) => {
+				TempUp({
+					T_InfoTemplate_id:scope.row.T_InfoTemplate_id,
+					T_name:value
+				}).then(res=>{
+					if (res.data.Code == 200) this.GetTempListApi()
+				})
+			}).catch(() => {});
+		},
+		handleCopy(e) {
+			console.log('复制', e)
+			this.$prompt('请输入模板名称', '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				inputPattern: /\S/,
+				inputErrorMessage: '模板名称不能为空'
+			}).then(({ value }) => {
+				TempCopy({
+					T_InfoTemplate_id: e.T_InfoTemplate_id,
+					T_name: value
+				}).then(res => {
+					console.log('1111', res)
+					if (res.data.Code == 200) this.GetTempListApi()
+				})
+			}).catch(() => {
+				this.$message({
+					type: 'info',
+					message: '取消复制'
+				});
+			});
+		},
+		showImg() {
+			this.dialogVisible = true
+			this.imgUrl = this.form.T_text
+		},
+		//标签上次成功
+		classsucFun(res) {
+			console.log('上传成功1', res)
+		},
+		// 标签上次失败
+		classErrFun(err) {
+			console.log('上传失败1', err)
+		},
+		submit() {
+			// axios.post({
+			// 	url:'http://coldverifylocal.coldbaozhida.com/GenerateReport/upload'
+			// }).then(function (response) {
+			//     console.log('上传',response);
+			// }).catch(function (error) {
+			//     console.log(error);
+			// });
+			this.$refs.uploadFile.submit();
+		},
+		errorFun(err) {
+			this.$message.error('文件上传失败')
+		},
+		successFun(res) {
+			console.log('上传成功', res,this.dirform)
+			if (this.draTit == "报告") {
+				this.dirform.T_reporting = res
+				this.dirform.T_scheme = ''
+				this.dirform.T_inspect = ''
+			}else if(this.draTit == "自检"){
+				this.dirform.T_inspect = res
+				this.dirform.T_scheme = ''
+				this.dirform.T_reporting = ''
+			} else {
+				this.dirform.T_scheme = res
+				this.dirform.T_reporting = ''
+				this.dirform.T_inspect = ''
+			}
+			this.setTempupApi()
+		},
+		setTempupApi() {
+			var _this = this
+			TempUp(this.dirform).then(res => {
+				console.log('上传', res)
+				if (res.data.Code == 200) {
+					_this.$message.success('文件上传成功')
+					_this.Drawer2 = false
+				}
+			})
+		},
+		fliValue(e) {
+			this.form.T_text = e
+		},
+		//提交标签
+		submitForm(formName) {
+			this.$refs[formName].validate((valid) => {
+				if (valid) {
+					if (this.titles == '编辑标签') {//编辑标签
+						console.log('编辑', this.form)
+						this.setMapupApi()
+					} else {//新增标签
+						this.setMapaddApi()
+						console.log('新增', this.form)
+					}
+				} else {
+					return false;
+				}
+			});
+		},
+		//标签编辑
+		hedEdit(e, differ) {
+			if (this.$refs.ruleForm != undefined) {
+				this.$refs.ruleForm.clearValidate()
+			}
+			this.innerDrawer2 = true
+			if (differ == 'edit') {//编辑
+				this.titles = '编辑标签'
+				console.log('标签', e, this.form.T_sort)
+				Object.keys(this.form).forEach(key => {
+					if (key == 'T_source' || key == 'T_label') {
+						this.form[key] = JSON.stringify(e[key])
+					} else {
+						this.form[key] = e[key]
+					}
+					// if(this.form.T_flow_sort ==0){this.form.T_flow_sort = -1}
+
+				})
+				console.log('标签', this.form)
+			} else {//添加
+				this.titles = '新增标签'
+				Object.keys(this.form).forEach(key => {
+					this.form[key] = ''
+				})
+				this.form.T_flow_sort = -1
+			}
+			this.form.T_InfoTemplate_id = this.pages2.T_InfoTemplate_id
+			console.log('显示', this.form)
+		},
+		//标签编辑api
+		setMapupApi() {
+			Map_Up(this.form).then(res => {
+				if (res.data.Code == 200) {
+					this.$message.success('编辑标签成功')
+					this.innerDrawer2 = false
+					this.getmapListApi()
+				}
+			})
+		},
+		//标签添加api
+		setMapaddApi() {
+			Map_Add(this.form).then(res => {
+				if (res.data.Code == 200) {
+					this.$message.success('新增标签成功')
+					this.innerDrawer2 = false
+					this.getmapListApi()
+				}
+			})
+		},
+		//标签删除
+		hedDel(e) {
+			console.log('删除', e)
+			this.$confirm('此操作将永久删除该模板, 是否继续?', '提示', {
+				confirmButtonText: '立即删除',
+				cancelButtonText: '取消',
+				type: 'warning',
+				center: true
+			}).then(() => {
+				Map_Del({ T_id: e.T_id }).then(res => {
+					if (res.data.Code == 200) {
+						this.$message.success('删除成功!')
+						this.getmapListApi()
+					}
+				})
+			}).catch(() => {
+				this.$message({
+					type: 'info',
+					message: '已取消删除'
+				});
+			});
+		},
+		sortchange(e, so) {
+			if (so == 'fsort') {//点击验证流程
+				this.pages2.T_sort = 0
+				e == 1 ? this.pages2.T_flow_sort = 2 : this.pages2.T_flow_sort = 1
+			} else {//点击的排序
+				this.pages2.T_flow_sort = 0
+				e == 1 ? this.pages2.T_sort = 2 : this.pages2.T_sort = 1
+			}
+			this.getmapListApi()
+		},
+		//添加标签
+		NewinnerDrawer() {
+			console.log('添加标签')
+		},
+		//标签
+		handlelabel(e) {
+			console.log('标签', e)
+			this.pages2.T_InfoTemplate_id = e.T_InfoTemplate_id
+			this.Drawer1 = true
+			this.getmapListApi()
+		},
+		//报告,自检,方案
+		handleReport(e,tit) {
+			console.log('s',e)
+			this.dirform = e
+			if (this.$refs.uploadFile != undefined) {
+				this.$refs.uploadFile.uploadFiles = []
+			}
+			this.Drawer2 = true
+			this.draTit = tit=='Report'?'报告':tit=='Scheme'?'方案':'自检'
+		},
+		getmapListApi() {
+			Map_List(this.pages2).then(res => {
+				const arr = []
+				const arr1 = res.data.Data.List || []
+				if (res.data.Code === 200) {
+					arr1.forEach(item => {
+						if(item.T_label != 0) arr.push(item)
+					})
+					this.tagTableData = arr
+				}
+                console.log('标签列表1111', this.tagTableData)
+			})
+		},
+		handleDelete(e) {
+			console.log('删除', e)
+			this.$confirm('此操作将删除该模板, 是否继续?', '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning',
+				center: true
+			}).then(() => {
+				TempDel({
+					T_InfoTemplate_id: e.T_InfoTemplate_id,
+				}).then(res => {
+					if (res.data.Code == 200) {
+						this.$message.success('删除成功!')
+						this.pages.page = 1
+						this.GetTempListApi()
+					}
+				})
+			}).catch(() => {
+				this.$message({
+					type: 'info',
+					message: '已取消删除'
+				});
+			});
+		},
+		searchFun() {
+			this.pages.page = 1
+			this.tempTableData = []
+			this.GetTempListApi()
+		},
+		//分页
+		handleCurrentChange(val) {
+			this.pages.page = val
+			this.GetTempListApi()
+		},
+		Newtemp() { //新增模板
+			var _this = this
+			this.$prompt('请输入新增模板名称', '新增', {
+				inputPattern: /\S/,
+				inputErrorMessage: '模板名称不能为空',
+				confirmButtonText: '添加',
+				cancelButtonText: '取消',
+			}).then(({
+				value
+			}) => {
+				TempAdd({
+					T_class: _this.pages.T_class,
+					T_name: value
+				}).then(res => {
+					if (res.data.Code == 200) {
+						_this.$message.success('新增模板成功')
+						_this.GetTempListApi()
+					}
+				})
+			}).catch(() => {
+
+			});
+		},
+
+		//分类列表
+		getTempApi() {
+			TempList({}).then(res => {
+				console.log('分类列表', res)
+				if (res.data.Code == 200) {
+					this.tableData = res.data.Data
+				}
+			})
+		},
+		goTemes(e) {
+			this.pages.T_class = e.Id
+			this.drawer = true
+			this.GetTempListApi()
+		},
+		//模板列表
+		GetTempListApi() {
+			TempGet(this.pages).then(res => {
+				console.log('列表', res)
+				if (res.data.Code === 200) {
+					this.tempTableData = res.data.Data.List
+					this.total = res.data.Data.Num
+				}
+			})
+		},
+		//添加分类Api
+		SetTempClassAddApi() {
+			TempClassAdd(this.pages1).then(res => {
+				console.log('添加', res)
+				if (res.data.Code === 200) {
+					this.$message.success('添加分类成功')
+					this.getTempApi()
+				}
+			})
+		},
+		//添加分类
+		addClass(e) {
+			e == 0 ? this.pages1.T_fid = e : this.pages1.T_fid = e.Id
+			this.$prompt('请输入需要添加的分类名称', '添加', {
+				inputPattern: /\S/,
+				inputErrorMessage: '分类名称不能为空',
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+			}).then(({
+				value
+			}) => {
+				this.pages1.T_name = value
+				this.SetTempClassAddApi()
+			}).catch(() => {
+
+			});
+		},
+		////编辑分类
+		setedit(e) {
+			console.log('编辑', e)
+			var _this = this
+			this.$prompt('请输入编辑的分类名称', '编辑', {
+				inputValue: e.T_name,
+				inputPattern: /\S/,
+				inputErrorMessage: '分类名称不能为空',
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+			}).then(({
+				value
+			}) => {
+				TempClassUp({
+					T_id: e.Id,
+					T_name: value
+				}).then(res => {
+					console.log('编辑', res)
+					if (res.data.Code === 200) {
+						_this.$message.success('编辑分类成功')
+						_this.getTempApi()
+					}
+				})
+			}).catch(() => {
+
+			});
+		},
+		//删除分类
+		setDel(e) {
+			console.log('删除', e)
+			var _this = this
+			this.$confirm('此操作将永久删除该分类, 是否继续?', '删除提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning',
+				center: true
+			}).then(() => {
+				TempClassDel({
+					T_id: e.Id
+				}).then(res => {
+					if (res.data.Code === 200) {
+						_this.$message.success('删除分类成功')
+						_this.getTempApi()
+					}
+				})
+			}).catch(() => {
+				this.$message({
+					type: 'info',
+					message: '已取消删除'
+				});
+			});
+		},
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+/deep/.el-upload {
+	width: 100%;
+}
+
+.drawer-upload {
+	padding: 20px;
+}
+
+.demo-drawers {
+	padding: 20px;
+}
+
+.icon-bg-def {
+	color: #C0C4CC;
+}
+
+.icon-bg-on {
+	color: #409EFF;
+}
+
+.icon-bg-off {
+	color: #C0C4CC;
+}
+
+/deep/.el-upload-dragger {
+	width: 100% !important;
+	padding: 0 30px !important;
+}
+
+.ValidationTemplate {
+	.ValidationTemplate1 {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+
+		.ValidationTemplate1-L {}
+
+		.ValidationTemplate1-R {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+
+			.ValidationTemplate1-Rtx {
+				min-width: 45px;
+				font-size: 14px;
+				color: #909399;
+				user-select: none;
+			}
+		}
+	}
+
+	.ValidationTemplate2 {
+		margin-top: 20px;
+	}
+
+	.ValidationTemplate3 {
+		margin-top: 40px;
+	}
+}</style>

+ 96 - 0
src/views/msgValidationTemplate/labelTag.vue

@@ -0,0 +1,96 @@
+<template>
+	<div>
+		<el-drawer title="标签列表" :visible.sync="Drawer" direction="rtl" ref="drawer" size="90%">
+			<div class="demo-drawers">
+				<el-button type="primary" icon="el-icon-plus" @click="NewinnerDrawer">添加标签</el-button>
+				<div style="margin-top: 10px;">
+					<el-table :data="tableData1" border size="mini">
+						<el-table-column label="标签名称" width="300" :show-overflow-tooltip="true">
+							<template slot-scope="scope">
+								<span>{{ scope.row.T_name }}</span>
+							</template>
+						</el-table-column>
+						<el-table-column label="数据类型" width="80" :show-overflow-tooltip="true">
+							<template slot-scope="scope">
+								<span>{{ scope.row.T_source }}</span>
+							</template>
+						</el-table-column>
+						<el-table-column label="标签" width="150" :show-overflow-tooltip="true">
+							<template slot-scope="scope">
+								<span>{{ scope.row.T_field }}</span>
+							</template>
+						</el-table-column>
+						<el-table-column label="排序" width="80" :show-overflow-tooltip="true">
+							<template slot-scope="scope">
+								<span>{{ scope.row.T_sort }}</span>
+							</template>
+						</el-table-column>
+						<el-table-column label="操作">
+							<template slot-scope="scope">
+								<el-dropdown @command="commands($event,scope.row)">
+									<div class="el-dropdown-link dropdown-links" style="">
+										<el-button type="primary" plain size="mini">更多操作</el-button>
+									</div>
+									<el-dropdown-menu slot="dropdown">
+										<el-dropdown-item command="a">编辑</el-dropdown-item>
+										<el-dropdown-item command="c">删除</el-dropdown-item>
+									</el-dropdown-menu>
+								</el-dropdown>
+							</template>
+						</el-table-column>
+					</el-table>
+				</div>
+				<div style="margin-top: 10px;">
+					<el-pagination @current-change="handleCurrentChange111" :current-page="pages2.page"
+						:page-size="pages2.page_z" layout="total, prev, pager, next, jumper" :total="total1">
+					</el-pagination>
+				</div>
+			</div>
+		</el-drawer>
+	</div>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				Drawer:false,
+				innerDrawer1:false,
+				innerDrawer3:false,
+				tableData1:[],
+				tableData2:[],
+				pages2:{},
+				pages1:{},
+				pages3:{},
+				total1:0,
+				total2:0,
+				titles:'',
+				titles1:'',
+				rules3:{}
+				
+			}
+		},
+		methods:{
+			//添加标签
+			NewinnerDrawer(){
+				console.log('添加标签')
+			},
+			//分页
+			handleCurrentChange111(val){
+				console.log('分页',val)
+			},
+			//分页
+			handleCurrentChange12(val){
+				console.log('分页',val)
+			},
+			//添加流程
+			TimeNew(){
+				console.log('添加流程')
+			}
+			
+		}
+	}
+</script>
+
+<style>
+</style>

+ 48 - 0
src/views/msgValidationTemplate/pdf.vue

@@ -0,0 +1,48 @@
+<template>
+	<div>
+		<el-dialog :visible.sync="dialogVisible4" width="80%" height="100%">
+			<iframe :src="serPdf" frameborder="0" style="width: 100%; height: 80vh"></iframe>
+		</el-dialog>
+		<!-- 
+		<div style="display: grid;grid-template-columns: 1fr 1fr 1fr; grid-gap: 10px;">
+			
+			<pdf v-for="item in 3" :key="item" :page="item"  ref="pdf" src="">
+			</pdf>
+		</div> -->
+		
+	</div>
+</template>
+
+<script>
+	import pdf from "vue-pdf";
+	export default {
+		name:'CompanyAccount',
+		components: { //组件
+			pdf
+		},
+		data() {
+			return{
+				dialogVisible4:false,
+				serPdf:''
+			}
+		},
+		methods:{
+			SetPdf(e){
+				this.dialogVisible4 = true
+				this.serPdf = e
+			}
+		}
+		
+	}
+</script>
+
+<style lang="scss" scoped>
+	.el-dialog__wrapper{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		/deep/.el-dialog {
+			margin: 0 !important;
+		}
+	}
+</style>

BIN
冷链2.0线上.rar


+ 1 - 0
冷链2.0线上/css/327.7177d1a3.css

@@ -0,0 +1 @@
+[v-cloak][data-v-3b8cbc42]{display:none}.demo-drawers[data-v-3b8cbc42]{padding:20px}.ManagingUsers .ManagingUsers1 .ManagingUsers1-R[data-v-3b8cbc42],.ManagingUsers .ManagingUsers1[data-v-3b8cbc42]{display:flex;justify-content:space-between;align-items:center}.ManagingUsers .ManagingUsers1 .ManagingUsers1-R .ManagingUsers1-Rtx[data-v-3b8cbc42]{min-width:45px;font-size:14px;color:#909399;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ManagingUsers .ManagingUsers2[data-v-3b8cbc42]{margin-top:20px}.ManagingUsers .ManagingUsers3[data-v-3b8cbc42]{margin-top:40px}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/css/516.52af3ce7.css


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/css/925.24e9c29f.css


+ 0 - 1
冷链2.0线上/css/97.7bb3a9aa.css

@@ -1 +0,0 @@
-[v-cloak][data-v-018f9039]{display:none}.demo-drawers[data-v-018f9039]{padding:20px}.ManagingUsers .ManagingUsers1 .ManagingUsers1-R[data-v-018f9039],.ManagingUsers .ManagingUsers1[data-v-018f9039]{display:flex;justify-content:space-between;align-items:center}.ManagingUsers .ManagingUsers1 .ManagingUsers1-R .ManagingUsers1-Rtx[data-v-018f9039]{min-width:45px;font-size:14px;color:#909399;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ManagingUsers .ManagingUsers2[data-v-018f9039]{margin-top:20px}.ManagingUsers .ManagingUsers3[data-v-018f9039]{margin-top:40px}

+ 1 - 1
冷链2.0线上/index.html

@@ -1 +1 @@
-<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>baozhida-chain-verify-online</title><script defer="defer" src="/js/chunk-vendors.785ddca1.js"></script><script defer="defer" src="/js/app.d1dcc777.js"></script><link href="/css/chunk-vendors.2b35c01c.css" rel="stylesheet"><link href="/css/app.85b7e3bb.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but baozhida-chain-verify-online doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
+<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>baozhida-chain-verify-online</title><script defer="defer" src="/js/chunk-vendors.785ddca1.js"></script><script defer="defer" src="/js/app.01dbe13b.js"></script><link href="/css/chunk-vendors.2b35c01c.css" rel="stylesheet"><link href="/css/app.85b7e3bb.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but baozhida-chain-verify-online doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/239.eb871fe6.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/239.eb871fe6.js.map


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/327.1649691e.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/327.1649691e.js.map


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/516.af6eac3a.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/516.af6eac3a.js.map


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/727.e2c9f6bf.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/727.e2c9f6bf.js.map


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/784.4e110969.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/784.4e110969.js.map


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/925.5812a284.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/925.5812a284.js.map


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/97.4305683e.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/97.4305683e.js.map


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/app.01dbe13b.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/app.01dbe13b.js.map


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
冷链2.0线上/js/app.d1dcc777.js


Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio