浏览代码

国际化——项目、模具等;代码修改

sunyadv 5 年之前
父节点
当前提交
8c10e6d16b

+ 158 - 1
ys_int/src/i18n/lang/en.js

@@ -23,6 +23,8 @@ const lang = {
 		detail: "Detail",
 		back: "Back",
 		upload: "Upload",
+		invite: "Invite",
+		state: "State",
     },
     prompt: {
         success: "Modify Success",
@@ -31,6 +33,11 @@ const lang = {
         success3: "Delete Success",
 		success4: "Upload Success",
 		success5: "Maintenance Completed",
+		success6: "Copy Success",
+		fail: "Copy Failed",
+		success7: "Approval Success",
+		success8: "Application Success",
+		success9: "Update Success",
     },
     msg: {
         changeLanguage: "Whether to change the language?",
@@ -41,6 +48,7 @@ const lang = {
 		keySearch: "Please enter a keyword to search",
 		uploadType: "Uploaded images can only be in JPG or PNG format!",
 		uploadSize: "Uploaded images should not exceed 5MB in size!",
+		nameSearch: "Please enter your name or cell phone number for search",
     },
     // 主页
     home: {
@@ -89,7 +97,7 @@ const lang = {
 		isMaintain1: "Normal",
 		process: "Process",
 		processMold: "Process Mold",
-		nowState: "Current maintenance status",
+		nowState: "Current maintenance status",
 		immediate: "Immediate Treatment",
 		record: "Processing records",
 		maintainUser: "Maintenance Person",
@@ -115,6 +123,39 @@ const lang = {
 	},
 	// 项目管理
     project: {
+		// 项目列表
+		proName: "Project Name",
+		inputProName: "Please enter the project name",
+		assName: "Asset Company",
+		cusName: "Producer Company",
+		moldName: "Project Mold",
+		inputMoldName: "Please select the project mold",
+		manager: "Project Manager",
+		inputManager: "Please select project manager",
+		indate: "Creat Time",
+		addPro: "Add Project",
+		// 项目详情
+		detail: "Basic Project Information",
+		projectNo: "Project No",
+		ownerApprover: "Asset Approver",
+		inputOwnerApprover: "Please select the approver of the asset side",
+		customerApprover: "Producer Approver",
+		inputCustomerApprover: "Please select the approver of the producer side",
+		users: "General User",
+		inputUsers: "Please select the general user of the project",
+		proFile: "Project Documentation",
+		fileName: "Name",
+		fileSize: "Size",
+		uploader: "Uploader",
+		uploadTime: "Upload Time",
+		operation: "Operation Record",
+		operFileName: "Operation Name",
+		operator: "Operator",
+		operTime: "Operation Time",
+		editPro: "Edit Project",
+		addUser: "Add Person",
+		uploadAndAdd: "Submit and Add",
+		delFile: "Are you sure to delete this document??",
         // 人员管理
         initial: "Initial Password",
         name: "Name",
@@ -126,17 +167,126 @@ const lang = {
         inputRole: "Please input Role",
         company: "Company",
         inputCompany: "Please select Company",
+		partake: "Participate Project",
+		inputPartake: "Please choose to participate in the project.",
+		remark: "Remark",
+		inputRemark:"Please enter remark",
+		type: "Type",
+		addPeo: "Add Person",
+		editPeo: "Edit Person",
+		copy: "Copy Link",
+		copyInv: "Please copy the invitation link",
+		delPeo: "Are you sure to delete this person?",
+		// 权限管理
+		choosePro: "Please select the project",
+		inputNameSearch: "Please enter your name for search",
+		upload: "Upload",
+		download: "Download",
+		view: "View",
+		approve: "Approve",
+		editPower: "Edit Power",
+		config: "Config Power",
     },
 	// 模具管理
 	mold: {
+		// 模具列表
 		moldNo: "Mold Num",
 		modelName: "Mold Name",
 		projectName: "Project Name",
 		factoryName: "Producer",
+		factoryName1: "Asset",
 		area: "Area",
 		runTimes: "Number of runs",
 		ocCycle: "Cycle",
 		hillNumber: "Electricity",
+		delMold: "Are you sure to delete the die?",
+		initial: "Initial Mold Times",
+		life: "Mold Lifetime",
+		hole: "Hole Number",
+		rfid: "RFID Code",
+		addMold: "Add Mold",
+		inputmoldNo: "Please enter the mould number.",
+		inputmodelName: "Please enter the name of the mould.",
+		inputequipment: "Please select equipment number",
+		inputinitial: "Please enter the initial module number.",
+		inputlife: "Please enter module life",
+		inputhole: "Please enter the number of points.",
+		inputrfid: "Please enter RIFD code",
+		inputfactoryName: "Please select the manufacturer to which you belong.",
+		maintainCount: "Maintenance times",
+		inputmaintainCount: "Please choose the number of maintenance times.",
+		num0: "Please fill in numbers greater than 0",
+		num1: "Please fill in a number less than or equal to 100 million",
+		// 模具详情
+		beScrapped: "To be scrapped",
+		scrap: "Scrap",
+		view: "Click to see the running status",
+		moldDetail: "Mold Basic Information",
+		file: "Documentation",
+		file2D: "2D drawing file",
+		file3D: "3D drawing file",
+		addComponents: "Add Components",
+		singleAdd: "Single Add",
+		downloadMould: "Download Template",
+		batchImport: "Batch Import",
+		apply: "Apply",
+		moldFile: "Mold Document",
+		state0: "Producer Audit failed",
+		state1: "Asset Audit failed",
+		state2: "Pending Audit",
+		state3: "Producer Audit",
+		state4: "Asset Audit",
+		state5: "Audit Pass",
+		componentsFile: "Part Document",
+		partNo: "Part Number",
+		partName: "Part Name",
+		partLife: "Lifetime",
+		yes: "Yes",
+		no: "No",
+		test: "Test mode and Acceptance",
+		plan: "Maintenance plan",
+		update: "Mold Update",
+		applicant: "Applicant",
+		applicationTime: "Application Time",
+		updateM: "Update Mold",
+		pass: "Pass",
+		fail: "Fail",
+		scrap: "Mold Scrapping",
+		applicationName: "Application Name",
+		applicationSize: "Application Size",
+		scrapName: "Scrap Name",
+		scrapSize: "Scrap Size",
+		updateRecord: "Update Record",
+		approver: "Approver",
+		time: "Time",
+		application: "Application",
+		scrap: "Scrap",
+		scrapUpload: "Mold Scrap Upload",
+		partUpload: "Part Document Upload",
+		rule: "File naming rules: part number + 2D / 3D, such as LJ001 + 2D.dwg",
+		export: "Batch Export Operation Record",
+		to: "To",
+		addPart: "Add Part",
+		editPart: "Edit Part",
+		inputpartNo: "Please enter the part number",
+		inputpartName: "Please enter the part name",
+		inputpartLife: "Please enter the part life",
+		approvalTitle1: "Confirmed approval?",
+		approvalTitle2: "Are you sure you have not approved?",
+		must: "Must upload one file each",
+		toApply: "Want to apply for an updated mold?",
+		noTime: "No time entered",
+		// 文档下载
+		searchByName: "Please enter the mold name to search",
+		allDown: "Download all",
+		down3DMold: "Mold 3D Image file",
+		down2DMold: "Mold 2D Image file",
+		down3DPart: "Part 3D Image file",
+		down2DPart: "Part 2D Image file",
+		fileState0: "Not Uploaded",
+		fileState1: "Passed",
+		fileState2: "Not Pass",
+		chooseFile: "Please select the document to download",
 	},
     // 基础管理
     basic: {
@@ -184,6 +334,13 @@ const lang = {
 		inputAgent: "Please enter the agent",
 		inputBlongComp: "You can activate the mold after entering your company.",
 		inUse: "Equipment is enabled",
+		equipmentState: "Equipment State",
+		diffTime: "Count Down",
+		year: "year",
+		compName: "Corporate Name",
+		state0: "Not Enabled",
+		state1: "Enabled",
+		use: "Use"
     },
     // 后台翻译
     port: {

+ 161 - 3
ys_int/src/i18n/lang/zh.js

@@ -17,12 +17,14 @@ const lang = {
 		static: "静止",
 		warning: "告警",
 		scrap: "报废",
-		choose: "请选择",
+		choose: "请选择查询条件",
 		num: "编号",
 		name: "名称",
 		detail: "详情",
 		back: "返回",
 		upload: "上传",
+		invite: "邀请",
+		state: "状态",
     },
     prompt: {
         success: "修改成功",
@@ -31,6 +33,11 @@ const lang = {
         success3: "删除成功",
 		success4: "上传成功",
 		success5: "保养完成",
+		success6: "复制成功",
+		fail: "复制失败",
+		success7: "审批成功",
+		success8: "申请成功",
+		success9: "更新成功",
     },
     msg: {
         changeLanguage: "是否切换语言?",
@@ -41,6 +48,7 @@ const lang = {
 		keySearch: "请输入关键字进行搜索",
 		uploadType: "上传的图片只能是 JPG 或 PNG 格式!",
 		uploadSize: "上传的图片大小不能超过 5MB!",
+		nameSearch: "请输入姓名或手机号进行搜索",
     },
     // 主页
     home: {
@@ -115,6 +123,39 @@ const lang = {
 	},
 	// 项目管理
     project: {
+		// 项目列表
+		proName: "项目名称",
+		inputProName: "请输入项目名称",
+		assName: "资产方公司",
+		cusName: "生产方公司",
+		moldName: "项目模具",
+		inputMoldName: "请选择项目模具",
+		manager: "项目经理",
+		inputManager: "请选择项目经理",
+		indate: "创建时间",
+		addPro: "新增项目",
+		// 项目详情
+		detail: "项目基本信息",
+		projectNo: "项目编号",
+		ownerApprover: "资产方审批人",
+		inputOwnerApprover: "请选择资产方审批人",
+		customerApprover: "生产方审批人",
+		inputCustomerApprover: "请选择生产方审批人",
+		users: "项目普通用户",
+		inputUsers: "请选择项目普通用户",
+		proFile: "项目文档",
+		fileName: "名称",
+		fileSize: "大小",
+		uploader: "上传者",
+		uploadTime: "上传时间",
+		operation: "操作记录",
+		operFileName: "操作文档名称",
+		operator: "操作人",
+		operTime: "操作时间",
+		editPro: "编辑项目",
+		addUser: "添加人员",
+		uploadAndAdd: "提交并新增",
+		delFile: "确认删除该文档吗?",
         // 人员管理
         initial: "初始密码",
         name: "姓名",
@@ -123,20 +164,130 @@ const lang = {
         inputMobile: "请输入手机号",
         inputTrueMobile: "请输入正确的手机号",   
         role: "角色",
+		inputRole: "请输入角色",
         company: "所属公司",
         inputCompany: "请选择所属公司",
+		partake: "参与项目",
+		inputPartake: "请选择参与项目",
+		remark: "备注",
+		inputRemark:"请输入备注",
+		type: "类型",
+		addPeo: "新增人员",
+		editPeo: "编辑人员",
+		copy: "复制链接",
+		copyInv: "请复制邀请链接",
+		delPeo: "确认删除该人员吗?",
+		// 权限管理
+		choosePro: "请选择项目",
+		inputNameSearch: "请输入姓名进行搜索",
+		upload: "上传",
+		download: "下载",
+		view: "浏览",
+		approve: "审批",
+		editPower: "编辑权限",
+		config: "权限配置",
+		
     },
 	// 模具管理
 	mold: {
+		// 模具列表
 		moldNo: "模具编号",
 		modelName: "模具名称",
 		projectName: "所属项目",
-		factoryName: "制造工厂",
+		factoryName: "所属生产方",
+		factoryName1: "所属资产方",
 		area: "位置",
 		runTimes: "运行次数",
 		ocCycle: "每模平均周期",
 		hillNumber: "电量",
-		
+		delMold: "确认删除该模具吗?",
+		initial: "初始模次",
+		life: "模次寿命",
+		hole: "穴数",
+		rfid: "RFID码",
+		addMold: "新建模具",
+		inputmoldNo: "请输入模具编号",
+		inputmodelName: "请输入模具名称",
+		inputequipment: "请选择云模盒编号",
+		inputinitial: "请输入初始模次",
+		inputlife: "请输入模次寿命",
+		inputhole: "请输入穴数",
+		inputrfid: "请输入RIFD码",
+		inputfactoryName: "请选择所属生产方",
+		maintainCount: "保养次数",
+		inputmaintainCount: "请选择保养次数",
+		num0: "请填写大于0的数字",
+		num1: "请填写小于等于1亿的数字",
+		// 模具详情
+		beScrapped: "待报废",
+		scraped: "已报废",
+		view: "点击查看运行状态",
+		moldDetail: "模具基本信息",
+		file: "文档资料",
+		file2D: "2D图档",
+		file3D: "3D图档",
+		addComponents: "新建零件",
+		singleAdd: "单个新建",
+		downloadMould: "下载模板",
+		batchImport: "批量导入",
+		apply: "申请",
+		moldFile: "模具文档",
+		state0: "生产方审核不通过",
+		state1: "资产方审核不通过",
+		state2: "待双方审核",
+		state3: "待生产方审核",
+		state4: "待资产方审核",
+		state5: "审核通过",
+		componentsFile: "零件文档",
+		partNo: "零件编号",
+		partName: "零件名称",
+		partLife: "寿命次数",
+		yes: "是",
+		no: "否",
+		test: "试模及验收",
+		plan: "保养方案",
+		update: "模具更新",
+		applicant: "申请人",
+		applicationTime: "申请时间",
+		updateM: "更新模具",
+		pass: "通过",
+		fail: "不通过",
+		scrapMold: "模具报废",
+		applicationName: "申请单名称",
+		applicationSize: "申请单大小",
+		scrapName: "报废单名称",
+		scrapSize: "报废单大小",
+		updateRecord: "更新记录",
+		approver: "审批人",
+		time: "时间",
+		application: "申请单",
+		scrap: "报废单",
+		scrapUpload: "模具报废上传",
+		partUpload: "零件文档上传",
+		rule: "文件命名规则:零件编号+2D/3D,  如 LJ001+2D.dwg",
+		export: "批量导出操作记录",
+		to: "至",
+		addPart: "新增零件",
+		editPart: "编辑零件",
+		inputpartNo: "请输入零件编号",
+		inputpartName: "请输入零件名称",
+		inputpartLife: "请输入零件寿命",
+		approvalTitle1: "确认通过审批吗?",
+		approvalTitle2: "确认不通过审批吗?",
+		must: "必须各上传一个文件",
+		toApply: "要申请更新模具吗?",
+		noTime: "未输入时间",
+		// 文档下载
+		searchByName: "请输入模具名称进行搜索",
+		allDown: "全部下载",
+		down3DMold: "模具3D图档",
+		down2DMold: "模具2D图档",
+		down3DPart: "零件3D图档",
+		down2DPart: "零件2D图档",
+		fileState0: "未上传",
+		fileState1: "已通过",
+		fileState2: "未通过",
+		chooseFile: "请选择要下载的文档",
 	},
     // 基础管理
     basic: {
@@ -184,6 +335,13 @@ const lang = {
 		inputAgent: "请输入代理商",
 		inputBlongComp: "填写所属公司后才能启用模具",
 		inUse: "设备已启用",
+		equipmentState: "云模盒状态",
+		diffTime: "倒计时",
+		year: "年",
+		compName: "公司名称",
+		state0: "未启用",
+		state1: "已启用",
+		use: "启用"	
     },
     ...locale
 }

+ 14 - 14
ys_int/src/views/base/allocation.vue

@@ -31,29 +31,29 @@
         <!--列表-->
         <el-table :data="allocations" :height="tableHeight" highlight-current-row v-loading="listLoading" style="width: 100%;">
             <el-table-column type="index" width="60"></el-table-column>
-            <el-table-column prop="equipmentNo" label="云模盒编号" width="130" sortable></el-table-column>
-            <el-table-column prop="hillNumber" label="电量" width="80" align="center" sortable></el-table-column>
-            <el-table-column prop="useLife" label="使用年限" width="100" align="center" sortable>
-                <template slot-scope="scope">{{scope.row.useLife}}</template>
+            <el-table-column prop="equipmentNo" :label="$t('basic.equipmentNo')" width="130" sortable></el-table-column>
+            <el-table-column prop="hillNumber" :label="$t('mold.hillNumber')" width="80" align="center" sortable></el-table-column>
+            <el-table-column prop="useLife" :label="$t('mold.useLife')" width="100" align="center" sortable>
+                <template slot-scope="scope">{{scope.row.useLife}}{{$t('basic.year')}}</template>
             </el-table-column>
-            <el-table-column prop="useLife" label="倒计时" width="100" align="center" sortable>
+            <el-table-column prop="useLife" :label="$t('basic.diffTime')" width="100" align="center" sortable>
                 <template slot-scope="scope">{{scope.row.diffTime}}</template>
             </el-table-column>
-            <el-table-column prop="modelName" label="模具名称" sortable></el-table-column>
-            <el-table-column prop="modelNo" label="模具编号" width="120" align="center" sortable></el-table-column>
-            <el-table-column prop="companyName" label="公司名称" sortable></el-table-column>
-            <el-table-column prop="agent" label="代理商" width="120" sortable></el-table-column>
-            <el-table-column label="云模盒状态" align="center" width="120" sortable>
+            <el-table-column prop="modelName" :label="$t('mold.modelName')" sortable></el-table-column>
+            <el-table-column prop="modelNo" :label="$t('mold.moldNo')" width="120" align="center" sortable></el-table-column>
+            <el-table-column prop="companyName" :label="$t('basic.compName')" sortable></el-table-column>
+            <el-table-column prop="agent" :label="$t('basic.agent')" width="120" sortable></el-table-column>
+            <el-table-column :label="$t('basic.equipmentState')" align="center" width="120" sortable>
                 <template slot-scope="scope">
-                    <span v-if="scope.row.isUse == 0">未启用</span>
-                    <span v-else>已启用</span>
+                    <span v-if="scope.row.isUse == 0">{{$t('basic.state0')}}</span>
+                    <span v-else>{{$t('basic.state1')}}</span>
                 </template>
             </el-table-column>
             <el-table-column :label="$t('base.operate')" align="center" width="160">
                 <template slot-scope="scope">
-                    <el-button size="small" v-if="scope.row.modelNo != null" type="primary" @click="openEnable(scope.$index)">启用</el-button>
+                    <el-button size="small" v-if="scope.row.modelNo != null" type="primary" @click="openEnable(scope.$index)">{{$t('basic.use')}}</el-button>
                     <!--  :disabled="scope.row.isUse == 1" -->
-                    <el-button size="small" :style="scope.row.modelNo!=null?'':'float:right;margin-right:6px'" @click="showEdit(scope.$index, scope.row, scope.row.isUse == 1)">修改</el-button>
+                    <el-button size="small" :style="scope.row.modelNo!=null?'':'float:right;margin-right:6px'" @click="showEdit(scope.$index, scope.row, scope.row.isUse == 1)">{{$t('base.edit')}}</el-button>
                 </template>
             </el-table-column>
         </el-table>

+ 7 - 7
ys_int/src/views/detection/maintenance.vue

@@ -75,31 +75,31 @@
 
         <!--新增界面-->
         <el-dialog :title="$t('runTest.maintenance')" v-if="maintenanceFormVisible" :visible.sync="maintenanceFormVisible" :close-on-click-modal="false" customClass="customWidth">
-            <el-form :model="maintenanceForm" label-width="130px" :rules="formRules" ref="addForm">
+            <el-form :model="maintenanceForm" label-width="135px" :rules="formRules" ref="addForm">
                 <!-- 保养类型选择 -->
                 <el-form-item :label="$t('runTest.type')" prop="type">
-                    <el-select v-model="type.value" filterable :placeholder="$t('runTest.inputType')" style="width:202px">
+                    <el-select v-model="type.value" filterable :placeholder="$t('runTest.inputType')" style="width:500px">
                         <el-option v-for="item in type" :key="item.value" :label="item.label" :value="item.value"></el-option>
                     </el-select>
                 </el-form-item>
 
                 <!-- 保养类型为1时 选择易损件ID -->
                 <el-form-item v-if="type.value == 1" :label="$t('runTest.vulnerable')" prop="vulnerable">
-                    <el-select v-model="vulnerable.value" clearable filterable :placeholder="$t('runTest.inputVulnerable')" style="width:202px">
+                    <el-select v-model="vulnerable.value" clearable filterable :placeholder="$t('runTest.inputVulnerable')" style="width: 500px;">
                         <el-option v-for="item in vulnerable" :key="item.value" :label="item.label" :value="item.value"></el-option>
                     </el-select>
                 </el-form-item>
 
                 <!-- 保养类型为0时 选择保养动作 -->
                 <el-form-item v-else :label="$t('runTest.action')" prop="action">
-                    <el-select v-model="action.value" filterable :placeholder="$t('runTest.inputAction')" style="width:202px">
+                    <el-select v-model="action.value" filterable :placeholder="$t('runTest.inputAction')" style="width: 500px;">
                         <el-option v-for="item in action" :key="item.value" :label="item.label" :value="item.value"></el-option>
                     </el-select>
                 </el-form-item>
 
                 <el-form-item :label="$t('runTest.fileName')">
                     <el-upload ref="upload" action="customize" :http-request="maintain" :limit="1" :auto-upload="false" :before-upload="beforeUpload">
-                        <el-button size="small" type="primary">{{$t('runTest.upload')}}</el-button>
+                        <el-button size="small" type="primary">{{$t('base.upload')}}</el-button>
                     </el-upload>
                 </el-form-item>
             </el-form>
@@ -111,12 +111,12 @@
 
         <!--告警处理界面-->
         <el-dialog :title="$t('runTest.dealWarning')" v-if="warningFormVisible" :visible.sync="warningFormVisible" :close-on-click-modal="false" customClass="customWidth">
-            <el-form :model="warningForm" label-width="100px" :rules="formRules" ref="addForm" :inline="true" class="demo-form-inline">
+            <el-form :model="warningForm" label-width="105px" :rules="formRules" ref="addForm">
                 <el-form-item :label="$t('runTest.warningType')">
                     <el-input :placeholder="$t('runTest.inputWarningType')" v-model="warningInfo" :disabled="true"></el-input>
                 </el-form-item>
                 <el-form-item :label="$t('runTest.moldSet')" prop="action">
-                    <el-select v-model="warningForm.equipmentId" filterable :placeholder="$t('runTest.inputMoldSet')" style="width:202px">
+                    <el-select v-model="warningForm.equipmentId" filterable :placeholder="$t('runTest.inputMoldSet')" style="width:530px">
                         <el-option v-for="item in equipments" :key="item.value" :label="item.label" :value="item.value"></el-option>
                     </el-select>
                 </el-form-item>

文件差异内容过多而无法显示
+ 492 - 506
ys_int/src/views/mold/moldDetail.vue


+ 237 - 246
ys_int/src/views/mold/moldDownload.vue

@@ -1,257 +1,248 @@
 <template slot-scope="scope">
-  <section>
-    <!--工具条-->
-    <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
-      <el-form :inline="true" :model="filters">
-        <el-form-item>
-          <el-input v-model="filters.name" placeholder="请输入模具名称进行搜索"></el-input>
-        </el-form-item>
-        <el-form-item>
-          <el-button type="primary" @click="getFileList(filters.name)">查询</el-button>
-        </el-form-item>
-        <el-form-item style="float: right;">
-          <el-dropdown>
-            <el-button type="primary">
-              下载
-              <i class="el-icon-arrow-down el-icon--right"></i>
-            </el-button>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item @click.native="download(0)">全部下载</el-dropdown-item>
-              <el-dropdown-item @click.native="download(1)" divided>模具3D图档</el-dropdown-item>
-              <el-dropdown-item @click.native="download(2)">模具2D图档</el-dropdown-item>
-              <el-dropdown-item @click.native="download(3)">零件3D图档</el-dropdown-item>
-              <el-dropdown-item @click.native="download(4)">零件2D图档</el-dropdown-item>
-              <el-dropdown-item @click.native="download(5)">保养方案</el-dropdown-item>
-            </el-dropdown-menu>
-          </el-dropdown>
-        </el-form-item>
-      </el-form>
-    </el-col>
+    <section>
+        <!--工具条-->
+        <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
+            <el-form :inline="true" :model="filters">
+                <el-form-item>
+                    <el-input v-model="filters.name" placeholder="请输入模具名称进行搜索"></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button type="primary" @click="getFileList(filters.name)">{{$t('base.query')}}</el-button>
+                </el-form-item>
+                <el-form-item style="float: right;">
+                    <el-dropdown>
+                        <el-button type="primary">{{$t('project.download')}}<i class="el-icon-arrow-down el-icon--right"></i></el-button>
+                        <el-dropdown-menu slot="dropdown">
+                            <el-dropdown-item @click.native="download(0)">全部下载</el-dropdown-item>
+                            <el-dropdown-item @click.native="download(1)" divided>{{$t('mold.down3DMold')}}</el-dropdown-item>
+                            <el-dropdown-item @click.native="download(2)">{{$t('mold.down2DMold')}}</el-dropdown-item>
+                            <el-dropdown-item @click.native="download(3)">{{$t('mold.down3DPart')}}</el-dropdown-item>
+                            <el-dropdown-item @click.native="download(4)">{{$t('mold.down2DPart')}}</el-dropdown-item>
+                            <el-dropdown-item @click.native="download(5)">{{$t('mold.plan')}}</el-dropdown-item>
+                        </el-dropdown-menu>
+                    </el-dropdown>
+                </el-form-item>
+            </el-form>
+        </el-col>
 
-    <!--列表-->
-    <el-table
-      :data="documents"
-      :height="tableHeight"
-      highlight-current-row
-      v-loading="listLoading"
-      style="width: 100%;"
-      @selection-change="selectionChanged"
-    >
-      <el-table-column type="selection" width="40"></el-table-column>
-      <el-table-column type="index" width="60"></el-table-column>
-      <el-table-column label="模具名称">
-        <template slot-scope="scope">
-            <router-link :to="'/moldList/' + scope.row.id + '/0'" tag="span" style="color: #409eff;cursor: pointer;">{{scope.row.modelName}}</router-link>
-        </template>
-      </el-table-column>
-      <el-table-column width="250" label="模具3D图档">
-        <template slot-scope="scope">
-          <span v-if="scope.row.mould3DFiles.length == 0">未上传</span>
-          <span v-else-if="scope.row.mould3DFilesState">已通过</span>
-          <span v-else>未通过</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="250" label="模具2D图档">
-        <template slot-scope="scope">
-          <span v-if="scope.row.mould2DFiles.length == 0">未上传</span>
-          <span v-else-if="scope.row.mould2DFilesState">已通过</span>
-          <span v-else>未通过</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="250" label="零件3D图档">
-        <template slot-scope="scope">
-          <span v-if="scope.row.sparepart3DFiles.length == 0">未上传</span>
-          <span v-else-if="scope.row.sparepart3DFilesState">已通过</span>
-          <span v-else>未通过</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="250" label="零件2D图档">
-        <template slot-scope="scope">
-          <span v-if="scope.row.sparepart2DFiles.length == 0">未上传</span>
-          <span v-else-if="scope.row.sparepart2DFilesState">已通过</span>
-          <span v-else>未通过</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="250" label="保养方案">
-        <template slot-scope="scope">
-          <span v-if="scope.row.maintainFiles.length == 0">未上传</span>
-          <span v-else-if="scope.row.maintainFilesState">已通过</span>
-          <span v-else>未通过</span>
-        </template>
-      </el-table-column>
-    </el-table>
+        <!--列表-->
+        <el-table :data="documents" :height="tableHeight" highlight-current-row v-loading="listLoading" style="width: 100%;" @selection-change="selectionChanged">
+            <el-table-column type="selection" width="40"></el-table-column>
+            <el-table-column type="index" width="60"></el-table-column>
+            <el-table-column label="模具名称">
+                <template slot-scope="scope">
+                    <router-link :to="'/moldList/' + scope.row.id + '/0'" tag="span" style="color: #409eff;cursor: pointer;">{{scope.row.modelName}}</router-link>
+                </template>
+            </el-table-column>
+            <el-table-column width="250" :label="$t('mold.down3DMold')">
+                <template slot-scope="scope">
+                    <span v-if="scope.row.mould3DFiles.length == 0">{{$t('mold.fileState0')}}</span>
+                    <span v-else-if="scope.row.mould3DFilesState">{{$t('mold.fileState1')}}</span>
+                    <span v-else>{{$t('mold.fileState2')}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column width="250" :label="$t('mold.down2DMold')">
+                <template slot-scope="scope">
+                    <span v-if="scope.row.mould2DFiles.length == 0">{{$t('mold.fileState0')}}</span>
+                    <span v-else-if="scope.row.mould2DFilesState">{{$t('mold.fileState1')}}</span>
+                    <span v-else>{{$t('mold.fileState2')}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column width="250" :label="$t('mold.down3DPart')">
+                <template slot-scope="scope">
+                    <span v-if="scope.row.sparepart3DFiles.length == 0">{{$t('mold.fileState0')}}</span>
+                    <span v-else-if="scope.row.sparepart3DFilesState">{{$t('mold.fileState1')}}</span>
+                    <span v-else>{{$t('mold.fileState2')}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column width="250" :label="$t('mold.down2DPart')">
+                <template slot-scope="scope">
+                    <span v-if="scope.row.sparepart2DFiles.length == 0">{{$t('mold.fileState0')}}</span>
+                    <span v-else-if="scope.row.sparepart2DFilesState">{{$t('mold.fileState1')}}</span>
+                    <span v-else>{{$t('mold.fileState2')}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column width="250" :label="$t('mold.plan')">
+                <template slot-scope="scope">
+                    <span v-if="scope.row.maintainFiles.length == 0">{{$t('mold.fileState0')}}</span>
+                    <span v-else-if="scope.row.maintainFilesState">{{$t('mold.fileState1')}}</span>
+                    <span v-else>{{$t('mold.fileState2')}}</span>
+                </template>
+            </el-table-column>
+        </el-table>
 
-    <!--工具条-->
-    <el-col :span="24" class="toolbar">
-      <el-pagination
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        :page-sizes="[20 , 50 , 80 , 100 , 200]"
-        :page-size="20"
-        layout="total, sizes, prev, pager, next"
-        :total="total"
-        style="float:right;"
-      ></el-pagination>
-    </el-col>
-  </section>
+        <!--工具条-->
+        <el-col :span="24" class="toolbar">
+            <el-pagination
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange"
+                :page-sizes="[20 , 50 , 80 , 100 , 200]"
+                :page-size="20"
+                layout="total, sizes, prev, pager, next"
+                :total="total"
+                style="float:right;"
+            ></el-pagination>
+        </el-col>
+    </section>
 </template>
 
 <script>
-import util from "../../common/js/util";
-export default {
-  data() {
-    return {
-      documents: [],
-      filters: {
-        name: "",
-        value: ""
-      },
-      listLoading: false,
-      page: 1,
-      size: 20,
-      total: 0,
-      tableHeight: 0,
-      selectedArray: []
-    };
-  },
-  methods: {
-    //分页
-    handleCurrentChange(val) {
-      this.page = val;
-      this.getFileList();
-    },
-    handleSizeChange(val) {
-      this.size = val;
-      this.getFileList();
-    },
-    //获取列表
-    getFileList(keyword) {
-      this.http.post(
-        this.port.mold.moldFileDowloadList,
-        {
-          keyName: keyword,
-          pageSize: this.size,
-          pageNum: this.page
-        },
-        res => {
-          if (res.code == "ok") {
-            this.documents = res.data.list;
-            this.total = res.data.total;
-            //对于拿到的所有数据
-            this.documents.forEach(file => {
-              var mould2DFilesState = true;
-              var mould3DFilesState = true;
-              var sparepart2DFilesState = true;
-              var sparepart3DFilesState = true;
-              var maintainFilesState = true;
-              //看看每种文档中的所有文件
-              file.mould2DFiles.forEach(item => {
-                if (item.state != 3) {
-                  mould2DFilesState = false;
-                }
-              });
-              file.mould3DFiles.forEach(item => {
-                if (item.state != 3) {
-                  mould3DFilesState = false;
-                }
-              });
-              file.sparepart2DFiles.forEach(item => {
-                if (item.state != 3) {
-                  sparepart2DFilesState = false;
-                }
-              });
-              file.sparepart3DFiles.forEach(item => {
-                if (item.state != 3) {
-                  sparepart3DFilesState = false;
-                }
-              });
-              file.maintainFiles.forEach(item => {
-                if (item.state != 3) {
-                  maintainFilesState = false;
-                }
-              });
-              //把计算好的状态装进这个模具对象中
-              file.mould2DFilesState = mould2DFilesState;
-              file.mould3DFilesState = mould3DFilesState;
-              file.sparepart2DFilesState = sparepart2DFilesState;
-              file.sparepart3DFilesState = sparepart3DFilesState;
-              file.maintainFilesState = maintainFilesState;
-            });
-          } else {
-            this.$message({
-              message: res.msg,
-              type: "error"
-            });
-          }
-        },
-        error => {
-          this.$message({
-            message: error,
-            type: "error"
-          });
-        }
-      );
-    },
-    //点击复选时
-    selectionChanged(row) {
-      this.selectedArray = [];
-      row.forEach(item => {
-        this.selectedArray.push(item.id);
-      });
-    },
-    //下载
-    download(type) {
-      if (this.selectedArray.length == 0) {
-        this.$message("请选择要下载的文档");
-      } else {
-        this.downloadPost(type);
-      }
-    },
-    //具体的下载
-    downloadPost(type) {
-        var user = sessionStorage.getItem('user') , token = "";
-        if(user != null){
-            token = JSON.parse(user).headImgurl
-        }
-        this.http.get(
-            this.port.mold.moldFileDowloadFile + 
-                "?ids="+ this.selectedArray.join(",") + 
-                "&dwgType=" + type +
-                "&token=" + token
-            ,
-            res => {
-                this.listLoading = false;
-                if (res.code == "ok") {
-                    let a = document.createElement('a')
-                    a.setAttribute('download', res.data.split("/")[2]);
-                    a.setAttribute("href", res.data);
-                    a.click();
-                } else {
-                    this.$message({
-                        message: res.msg,
-                        type: "error"
+        import util from "../../common/js/util";
+
+        export default {
+            data() {
+                return {
+                    documents: [],
+                    filters: {
+                        name: "",
+                        value: ""
+                    },
+                    listLoading: false,
+                    page: 1,
+                    size: 20,
+                    total: 0,
+                    tableHeight: 0,
+                    selectedArray: []
+                };
+            },
+            methods: {
+                //分页
+                handleCurrentChange(val) {
+                    this.page = val;
+                    this.getFileList();
+                },
+
+                handleSizeChange(val) {
+                    this.size = val;
+                    this.getFileList();
+                },
+
+                //获取列表
+                getFileList(keyword) {
+                    this.http.post( this.port.mold.moldFileDowloadList, {
+                        keyName: keyword,
+                        pageSize: this.size,
+                        pageNum: this.page
+                    },
+                    res => {
+                        if (res.code == "ok") {
+                            this.documents = res.data.list;
+                            this.total = res.data.total;
+                            //对于拿到的所有数据
+                            this.documents.forEach(file => {
+                                var mould2DFilesState = true;
+                                var mould3DFilesState = true;
+                                var sparepart2DFilesState = true;
+                                var sparepart3DFilesState = true;
+                                var maintainFilesState = true;
+                                //看看每种文档中的所有文件
+                                file.mould2DFiles.forEach(item => {
+                                    if (item.state != 3) {
+                                        mould2DFilesState = false;
+                                    }
+                                });
+                                file.mould3DFiles.forEach(item => {
+                                    if (item.state != 3) {
+                                        mould3DFilesState = false;
+                                    }
+                                });
+                                file.sparepart2DFiles.forEach(item => {
+                                    if (item.state != 3) {
+                                        sparepart2DFilesState = false;
+                                    }
+                                });
+                                file.sparepart3DFiles.forEach(item => {
+                                    if (item.state != 3) {
+                                        sparepart3DFilesState = false;
+                                    }
+                                });
+                                file.maintainFiles.forEach(item => {
+                                    if (item.state != 3) {
+                                        maintainFilesState = false;
+                                    }
+                                });
+                                //把计算好的状态装进这个模具对象中
+                                file.mould2DFilesState = mould2DFilesState;
+                                file.mould3DFilesState = mould3DFilesState;
+                                file.sparepart2DFilesState = sparepart2DFilesState;
+                                file.sparepart3DFilesState = sparepart3DFilesState;
+                                file.maintainFilesState = maintainFilesState;
+                            });
+                        } else {
+                            this.$message({
+                            message: res.msg,
+                            type: "error"
+                            });
+                        }
+                    },
+                    error => {
+                        this.$message({
+                            message: error,
+                            type: "error"
+                        });
+                    });
+                },
+
+                //点击复选时
+                selectionChanged(row) {
+                    this.selectedArray = [];
+                    row.forEach(item => {
+                        this.selectedArray.push(item.id);
+                    });
+                },
+
+                //下载
+                download(type) {
+                    if (this.selectedArray.length == 0) {
+                        this.$message(this.$t('mold.chooseFile'));
+                    } else {
+                        this.downloadPost(type);
+                    }
+                },
+
+                //具体的下载
+                downloadPost(type) {
+                    var user = sessionStorage.getItem('user') , token = "";
+                    if(user != null){
+                        token = JSON.parse(user).headImgurl
+                    }
+                    this.http.get( this.port.mold.moldFileDowloadFile + 
+                        "?ids="+ this.selectedArray.join(",") + 
+                        "&dwgType=" + type +
+                        "&token=" + token ,
+                        res => {
+                            this.listLoading = false;
+                            if (res.code == "ok") {
+                                let a = document.createElement('a')
+                                a.setAttribute('download', res.data.split("/")[2]);
+                                a.setAttribute("href", res.data);
+                                a.click();
+                            } else {
+                                this.$message({
+                                    message: res.msg,
+                                    type: "error"
+                                });
+                            }
+                        },
+                        error => {
+                        this.listLoading = false;
+                        this.$message({
+                            message: error,
+                            type: "error"
+                        });
                     });
                 }
             },
-            error => {
-            this.listLoading = false;
-            this.$message({
-                message: error,
-                type: "error"
-            });
+            created() {
+                 let height = window.innerHeight;
+                this.tableHeight = height - 210;
+                const that = this;
+                window.onresize = function temp() {
+                    that.tableHeight = window.innerHeight - 210;
+                };
+            },
+            mounted() {
+                this.getFileList();
             }
-        );
-    }
-  },
-  created() {
-    let height = window.innerHeight;
-    this.tableHeight = height - 210;
-  },
-  mounted() {
-    this.getFileList();
-  }
-};
+        };
 </script>
-
-<style scoped>
-</style>

+ 99 - 68
ys_int/src/views/mold/moldList.vue

@@ -5,27 +5,27 @@
             <el-form :inline="true" :model="filters">
                 <el-col :span="3">
                     <el-form-item>
-                        <el-select v-model="filters.projectId" clearable placeholder="请选择项目">
+                        <el-select v-model="filters.projectId" clearable :placeholder="$t('project.choosePro')">
                         <el-option v-for="item in projects" :key="item.id" :label="item.projectName" :value="item.id"></el-option>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="2">
                     <el-form-item>
-                        <el-select v-model="filters.searchType" placeholder="请选择查询条件">
-                        <el-option label="编号" value="0"></el-option>
-                        <el-option label="名称" value="1"></el-option>
+                        <el-select v-model="filters.searchType" :placeholder="$t('base.choose')">
+                        <el-option :label="$t('base.num')" value="0"></el-option>
+                        <el-option :label="$t('base.name')" value="1"></el-option>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-form-item>
-                    <el-input v-model="filters.keyName" placeholder="请输入编号或名称进行搜索"></el-input>
+                    <el-input v-model="filters.keyName" :placeholder="$t('msg.keySearch')"></el-input>
                 </el-form-item>
                 <el-form-item>
-                    <el-button type="primary" @click="getMoldList">查询</el-button>
+                    <el-button type="primary" @click="getMoldList">{{$t('base.query')}}</el-button>
                 </el-form-item>
                 <el-form-item style="float: right" v-if="user.parentId == 1 && user.subordinateType == 0">
-                    <el-button type="primary" @click="showAdd">新建</el-button>
+                    <el-button type="primary" @click="showAdd">{{$t('base.add')}}</el-button>
                 </el-form-item>
             </el-form>
         </el-col>
@@ -33,31 +33,31 @@
         <!--列表-->
         <el-table :data="molds" :height="tableHeight" highlight-current-row v-loading="listLoading" style="width: 100%;">
             <el-table-column type="index" width="40"></el-table-column>
-            <el-table-column prop="modelName" label="模具名称" width="140" sortable>
+            <el-table-column prop="modelName" :label="$t('mold.modelName')" width="140" sortable>
                 <template slot-scope="scope">
                     <el-link :underline="false" type="primary" @click="toDetail(scope.row)">{{scope.row.modelName}}</el-link>
                 </template>
             </el-table-column>
-            <el-table-column prop="modelNo" label="模具编号" width="120" sortable></el-table-column>
-            <el-table-column prop="equipmentNo" label="云模盒编号" width="120" sortable></el-table-column>
-            <el-table-column prop="hillNumber" label="电量" align="center" width="100" sortable></el-table-column>
-            <el-table-column prop="diffTime" label="倒计时" align="center" width="100" sortable></el-table-column>
-            <el-table-column prop="projectName" label="所属项目" width="140" sortable></el-table-column>
-            <el-table-column prop="companyName" label="所属资产方" width="300" sortable></el-table-column>
-            <el-table-column prop="produceCompany" label="所属生产方" width="200" sortable></el-table-column>
-            <el-table-column prop="initialModulus" label="初始模次" width="100" align="center" sortable></el-table-column>
-            <el-table-column prop="settingLife" label="模次寿命" width="100" align="center" sortable></el-table-column>
-            <el-table-column prop="holes" label="穴数" width="100" align="center" sortable></el-table-column>
-            <el-table-column prop="rfid" label="对应RFID码" width="120" align="center" sortable></el-table-column>
-            <el-table-column label="状态" width="100" align="center" sortable>
+            <el-table-column prop="modelNo" :label="$t('mold.moldNo')" width="120" sortable></el-table-column>
+            <el-table-column prop="equipmentNo" :label="$t('basic.equipmentNo')" width="120" sortable></el-table-column>
+            <el-table-column prop="hillNumber" :label="$t('mold.hillNumber')" align="center" width="100" sortable></el-table-column>
+            <el-table-column prop="diffTime" :label="$t('basic.diffTime')" align="center" width="100" sortable></el-table-column>
+            <el-table-column prop="projectName" :label="$t('mold.projectName')" width="140" sortable></el-table-column>
+            <el-table-column prop="companyName" :label="$t('mold.factoryName1')" width="300" sortable></el-table-column>
+            <el-table-column prop="produceCompany" :label="$t('mold.factoryName')" width="200" sortable></el-table-column>
+            <el-table-column prop="initialModulus" :label="$t('mold.initial')" width="100" align="center" sortable></el-table-column>
+            <el-table-column prop="settingLife" :label="$t('mold.life')" width="100" align="center" sortable></el-table-column>
+            <el-table-column prop="holes" :label="$t('mold.hole')" width="100" align="center" sortable></el-table-column>
+            <el-table-column prop="rfid" :label="$t('mold.rfid')" width="120" align="center" sortable></el-table-column>
+            <el-table-column :label="$t('runTest.state')" width="100" align="center" sortable>
                 <template slot-scope="scope">
-                    <span v-if="scope.row.state == 1" style="color:#00CD66;">运行</span>
-                    <span v-else style="color:#999999;">静止</span>
+                    <span v-if="scope.row.state == 1" style="color:#00CD66;">{{$t('base.run')}}</span>
+                    <span v-else style="color:#999999;">{{$t('base.static')}}</span>
                 </template>
             </el-table-column>
-            <el-table-column label="操作" width="150" align="center" sortable v-if="user.parentId == 1 && user.subordinateType == 0">
+            <el-table-column :label="$t('base.operate')" width="150" align="center" sortable v-if="user.parentId == 1 && user.subordinateType == 0">
                 <template slot-scope="scope">
-                    <el-button size="small" type="danger" @click="handleDel(scope.row)">删除</el-button>
+                    <el-button size="small" type="danger" @click="handleDel(scope.row)">{{$t('el.upload.delete')}}</el-button>
                 </template>
             </el-table-column>
         </el-table>
@@ -76,45 +76,45 @@
         </el-col>
 
         <!--新增界面-->
-        <el-dialog title="新建模具" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass="customWidth">
-            <el-form :model="addForm" label-width="100px" :rules="formRules" ref="addForm" :inline="true" class="demo-form-inline">
-                <el-form-item label="模具名称" prop="modelName">
-                    <el-input v-model="addForm.modelName" autocomplete="off" placeholder="请输入模具名称" style="width:202px"></el-input>
+        <el-dialog :title="$t('mold.addMold')" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass="customWidth">
+            <el-form :model="addForm" label-width="140px" :rules="formRules" ref="addForm" :inline="true" class="demo-form-inline">
+                <el-form-item :label="$t('mold.modelName')" prop="modelName">
+                    <el-input v-model="addForm.modelName" autocomplete="off" :placeholder="$t('mold.inputmodelName')" style="width:480px"></el-input>
                 </el-form-item>
-                <el-form-item label="模具编号" prop="modelNo">
-                    <el-input v-model="addForm.modelNo" autocomplete="off" placeholder="请输入模具编号" style="width:202px"></el-input>
+                <el-form-item :label="$t('mold.moldNo')" prop="modelNo">
+                    <el-input v-model="addForm.modelNo" autocomplete="off" :placeholder="$t('mold.inputmoldNo')" style="width:480px"></el-input>
                 </el-form-item>
-                <el-form-item label="云模盒编号" prop="equipmentId">
-                    <el-select v-model="addForm.equipmentId" clearable filterable placeholder="请选择云模盒编号" style="width:202px">
+                <el-form-item :label="$t('basic.equipmentNo')" prop="equipmentId">
+                    <el-select v-model="addForm.equipmentId" clearable filterable :placeholder="$t('mold.inputequipment')" style="width:480px">
                         <el-option v-for="item in boxes" :key="item.id" :label="item.equipmentNo" :value="item.id"></el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="初始模次" prop="initialModulus">
-                    <el-input v-model="addForm.initialModulus" autocomplete="off" placeholder="请输入初始模次" style="width:202px"></el-input>
+                <el-form-item :label="$t('mold.initial')" prop="initialModulus">
+                    <el-input v-model="addForm.initialModulus" autocomplete="off" :placeholder="$t('mold.inputinitial')" style="width:480px"></el-input>
                 </el-form-item>
-                <el-form-item label="模次寿命" prop="settingLife">
-                    <el-input v-model="addForm.settingLife" autocomplete="off" placeholder="请输入模次寿命" style="width:202px"></el-input>
+                <el-form-item :label="$t('mold.life')" prop="settingLife">
+                    <el-input v-model="addForm.settingLife" autocomplete="off" :placeholder="$t('mold.inputlife')" style="width:480px"></el-input>
                 </el-form-item>
-                <el-form-item label="RIFD码" prop="rfid">
-                    <el-input v-model="addForm.rfid" autocomplete="off" placeholder="请输入RIFD码" style="width:202px"></el-input>
+                <el-form-item :label="$t('mold.rfid')" prop="rfid">
+                    <el-input v-model="addForm.rfid" autocomplete="off" :placeholder="$t('mold.inputrfid')" style="width:480px"></el-input>
                 </el-form-item>
-                <el-form-item label="穴数" prop="holes">
-                    <el-input v-model="addForm.holes" autocomplete="off" placeholder="请输入穴数" style="width:202px"></el-input>
+                <el-form-item :label="$t('mold.hole')" prop="holes">
+                    <el-input v-model="addForm.holes" autocomplete="off" :placeholder="$t('mold.inputhole')" style="width:480px"></el-input>
                 </el-form-item>
-                <el-form-item label="所属生产方" prop="produceCompanyId">
-                    <el-select v-model="addForm.produceCompanyId" clearable filterable placeholder="请选择所属生产方" style="width:202px">
+                <el-form-item :label="$t('mold.factoryName')" prop="produceCompanyId">
+                    <el-select v-model="addForm.produceCompanyId" clearable filterable :placeholder="$t('mold.inputfactoryName')" style="width:480px">
                         <el-option v-for="item in companys" :key="item.id" :label="item.companyName" :value="item.id"></el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="保养次数" prop="maintainCount">
-                    <el-select v-model="addForm.maintainCount" clearable multiple allow-create filterable default-first-option placeholder="请选择保养次数" style="width:515px">
+                <el-form-item :label="$t('mold.maintainCount')" prop="maintainCount">
+                    <el-select v-model="addForm.maintainCount" clearable multiple allow-create filterable default-first-option :placeholder="$t('mold.inputmaintainCount')" style="width:480px">
                         <el-option v-for="item in maintainCount" :key="item" :label="item" :value="item"></el-option>
                     </el-select>
                 </el-form-item>
             </el-form>
             <div slot="footer" class="dialog-footer">
-                <el-button @click.native="addFormVisible = false">取消</el-button>
-                <el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button>
+                <el-button @click.native="addFormVisible = false">{{$t('el.messagebox.cancel')}}</el-button>
+                <el-button type="primary" @click.native="addSubmit" :loading="addLoading">{{$t('el.messagebox.confirm')}}</el-button>
             </div>
         </el-dialog>
     </section>
@@ -126,13 +126,13 @@
         data() {
             const checkInitialModulus = (rule, value, callback) => {
                 if (!value) {
-                    return callback(new Error('请输入初始模次'));
+                    return callback(new Error(this.$t('mold.inputinitial')));
                 } else {
                     if((/^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/).test(value) == false){
-                        callback(new Error("请填写大于0的数字"));
+                        callback(new Error(this.$t('mold.num0')));
                     }else{
                         if (value > 100000000) {
-                            callback(new Error("请填写小于等于1亿的数字"));
+                            callback(new Error(this.$t('mold.num1')));
                         }else{
                             callback();
                         }
@@ -141,58 +141,87 @@
             };
             const checkSettingLife = (rule, value, callback) => {
                 if (!value) {
-                    return callback(new Error('请输入模次寿命'));
+                    return callback(this.$t('mold.inputlife'));
                 } else {
                     if((/^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/).test(value) == false){
-                        callback(new Error("请填写大于0的数字"));
+                        callback(new Error(this.$t('mold.num0')));
                     }else{
                         if (value > 100000000) {
-                            callback(new Error("请填写小于等于1亿的数字"));
+                            callback(new Error(this.$t('mold.num1')));
                         }else{
                             callback();
                         }
                     }
                 }
             };
+            const msg = (rule, value, callback) => {
+                if (!value) {
+                    switch(rule.field) {
+                        case "modelNo":
+                            return callback(new Error(this.$t('mold.inputmoldNo')));
+                            break;
+                        case "modelName":
+                            return callback(new Error(this.$t('mold.inputmodelName')));
+                            break;
+                        case "equipmentId":
+                            return callback(new Error(this.$t('mold.inputequipment')));
+                            break;
+                        case "rfid":
+                            return callback(new Error(this.$t('mold.inputrfid')));
+                            break;
+                        case "holes":
+                            return callback(new Error(this.$t('mold.inputhole')));
+                            break;
+                        case "produceCompanyId":
+                            return callback(new Error(this.$t('mold.inputfactoryName')));
+                            break;
+                        case "maintainCount":
+                            return callback(new Error(this.$t('mold.inputmaintainCount')));
+                            break;
+                        default:
+                            callback();
+                    } 
+                } else {
+                    callback();
+                }
+            };
             return {
                 user: JSON.parse(sessionStorage.getItem("user")),
                 molds: [],
                 filters: {
                     keyName: "",
-                    searchType: "编号",
+                    searchType: this.$t('base.num'),
                     projectId: ""
                 },
-                team: [{label:'资产方',value:0},{label:'生产方',value:1}],
+                team: [{label:this.$t('basic.asset'),value:0},{label:this.$t('basic.producer'),value:1}],
 
                 formRules: {
                     modelNo: [
-                        { required: true, message: "请输入模具编号", trigger: "blur" }
+                        { required: true, validator: msg, trigger: "blur" }
                     ],
                     modelName: [
-                        { required: true, message: "请输入模具名称", trigger: "blur" }
+                        { required: true, validator: msg, trigger: "blur" }
                     ],
                     equipmentId: [
-                        { required: true, message: "请选择云模盒编号", trigger: ["blur", "change"] }
+                        { required: true, validator: msg, trigger: ["blur", "change"] }
                     ],
                     initialModulus: [
-                        // { required: true, message: "请输入初始模次", trigger: "blur" }
                         { required: true, validator: checkInitialModulus, trigger: 'blur'}
                     ],
                     settingLife: [
-                        // { required: true, message: "请输入模次寿命", trigger: "blur" }
                         { required: true, validator: checkSettingLife, trigger: 'blur'}
                     ],
                     rfid: [
-                        { required: true, message: "请输入RIFD码", trigger: "blur" }
+                        { required: true, validator: msg, trigger: "blur" }
                     ],
                     holes: [
-                        { required: true, message: "请输入穴数", trigger: "blur" }
+                        { required: true, validator: msg, trigger: "blur" }
                     ],
                     produceCompanyId: [
-                        { required: true, message: "请选择所属生产方", trigger: ["blur", "change"] }
+                        { required: true, validator: msg, trigger: ["blur", "change"] }
                     ],
                     maintainCount: [
-                        { required: true, message: "请输入保养次数", trigger: ["blur", "change"] }
+                        { required: true, validator: msg, trigger: ["blur", "change"] }
                     ]
                 },
                 listLoading: false,
@@ -308,7 +337,7 @@
                     pageNum: this.page,
                     pageSize: this.size,
                     projectId: this.filters.projectId == "" ? -1 : this.filters.projectId,
-                    searchType: this.filters.searchType == "编号"? 0:1
+                    searchType: this.filters.searchType == this.$t('base.num')? 0:1
                 },
                 res => {
                     this.listLoading = false;
@@ -350,15 +379,17 @@
 
             //删除
 			handleDel: function (row) {
-                this.$confirm('确认删除该模具吗?', '提示', {
-					type: 'warning'
+                this.$confirm(this.$t('mold.delMold'), this.$t('el.messagebox.title'), {
+					confirmButtonText: this.$t('el.messagebox.confirm'),
+                    cancelButtonText: this.$t('el.messagebox.cancel'),
+                    type: 'warning'
 				}).then(() => {
                     this.http.post(this.port.mold.delMold, {
                         id: row.id
                     }, res => {
                         if (res.code == "ok") {
                             this.$message({
-                                message: '删除成功',
+                                message: this.$t('prompt.success3'),
                                 type: 'success'
                             });
                             this.getMoldList();
@@ -413,7 +444,7 @@
                             if (res.code == "ok") {
                                 this.addFormVisible = false;
                                 this.$message({
-                                    message: "创建成功",
+                                    message: this.$t('prompt.success2'),
                                     type: "success"
                                 });
                                 this.getMoldList();

+ 23 - 27
ys_int/src/views/project/competence.vue

@@ -5,54 +5,50 @@
 			<el-form :inline="true" :model="filters">
                 <el-col :span="3">
                     <el-form-item>
-                        <el-select v-model="filters.projectId" clearable filterable placeholder="请选择项目">
+                        <el-select v-model="filters.projectId" clearable filterable :placeholder="$t('project.choosePro')">
                             <el-option v-for="item in projects" :key="item.id" :label="item.projectName" :value="item.id">
                             </el-option>
                         </el-select>
                     </el-form-item>
                 </el-col>
 				<el-form-item>
-					<el-input v-model="filters.keyName" placeholder="请输入姓名进行搜索"></el-input>
+					<el-input v-model="filters.keyName" :placeholder="$t('project.inputNameSearch')"></el-input>
 				</el-form-item>
 				<el-form-item>
-					<el-button type="primary" @click="getPowerList">查询</el-button>
+					<el-button type="primary" @click="getPowerList">{{$t('base.query')}}</el-button>
 				</el-form-item>
 			</el-form>
 		</el-col>
 
 		<!--列表-->
-		<el-table :data="list" highlight-current-row v-loading="listLoading" style="width: 100%;">
-			<el-table-column type="index" width="60">
-			</el-table-column>
-			<el-table-column prop="username" label="姓名" width="150" sortable>
-			</el-table-column>
-			<el-table-column prop="companyName" label="所属公司" sortable>
-			</el-table-column>
-			<el-table-column prop="projectName" label="项目名称" width="220" sortable>
-			</el-table-column>
-			<el-table-column prop="addr" label="上传" align="center" width="150">
+		<el-table :data="list" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
+			<el-table-column type="index" width="60"></el-table-column>
+			<el-table-column prop="username" :label="$t('project.name')" width="150" sortable></el-table-column>
+			<el-table-column prop="companyName" :label="$t('project.company')" sortable></el-table-column>
+			<el-table-column prop="projectName" :label="$t('project.partake')" width="220" sortable></el-table-column>
+			<el-table-column prop="addr" :label="$t('project.upload')" align="center" width="150">
                 <template slot-scope="scope">
                     <el-checkbox :value="scope.row.update==1?true:false"></el-checkbox>
                 </template>
 			</el-table-column>
-            <el-table-column prop="addr" label="下载" align="center" width="150">
+            <el-table-column prop="addr" :label="$t('project.download')" align="center" width="150">
                 <template slot-scope="scope">
                     <el-checkbox :value="scope.row.download==1?true:false"></el-checkbox>
                 </template>
 			</el-table-column>
-            <el-table-column prop="addr" label="浏览" align="center" width="150">
+            <el-table-column prop="addr" :label="$t('project.view')" align="center" width="150">
                 <template slot-scope="scope">
                     <el-checkbox :value="scope.row.view==1?true:false"></el-checkbox>
                 </template>
 			</el-table-column>
-            <el-table-column prop="addr" label="审批" align="center" width="150">
+            <el-table-column prop="addr" :label="$t('project.approve')" align="center" width="150">
                 <template slot-scope="scope">
                     <el-checkbox :value="scope.row.approve==1?true:false"></el-checkbox>
                 </template>
 			</el-table-column>
-			<el-table-column label="操作" width="150" align="center">
+			<el-table-column :label="$t('base.operate')" width="150" align="center">
 				<template slot-scope="scope">
-					<el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+					<el-button size="small" @click="handleEdit(scope.$index, scope.row)">{{$t('base.edit')}}</el-button>
 				</template>
 			</el-table-column>
 		</el-table>
@@ -71,10 +67,10 @@
 		</el-col>
 
 		<!--编辑界面-->
-		<el-dialog title="编辑权限" v-if="editFormVisible" :visible.sync="editFormVisible" :close-on-click-modal="false" customClass='customWidth'>
+		<el-dialog :title="$t('project.editPower')" v-if="editFormVisible" :visible.sync="editFormVisible" :close-on-click-modal="false" customClass='customWidth'>
 			<el-form :model="editForm" label-width="80px" ref="editForm">
 				<el-col :span="24">
-                    <el-form-item label="权限配置">
+                    <el-form-item :label="$t('project.config')">
                         <el-row>
                             <el-col :span="6" v-for="(item,index) in roleList" :key="item.val" style="text-align:center;">
                                 <el-checkbox v-model="editForm[item.label]" :disabled="index==3?true:false" :checked="editForm[item.label]">{{item.name}}</el-checkbox>
@@ -84,8 +80,8 @@
                 </el-col>
 			</el-form>
 			<div slot="footer" class="dialog-footer">
-				<el-button @click.native="editFormVisible = false">取消</el-button>
-				<el-button type="primary" @click.native="editSubmit" :loading="editLoading">提交</el-button>
+				<el-button @click.native="editFormVisible = false">{{$t('el.messagebox.cancel')}}</el-button>
+				<el-button type="primary" @click.native="editSubmit" :loading="editLoading">{{$t('el.messagebox.confirm')}}</el-button>
 			</div>
 		</el-dialog>
 	</section>
@@ -114,10 +110,10 @@
 				editFormVisible: false,//编辑界面是否显示
                 editLoading: false,
                 roleList: [
-                    {name:'上传',val:0,label:'uploadPower',uploadPower:false},
-                    {name:'下载',val:1,label:'dowloadPower',dowloadPower:false},
-                    {name:'浏览',val:2,label:'viewPower',viewPower:false},
-                    {name:'审批',val:3,label:'approvalPower',approvalPower:false}
+                    {name:this.$t('project.upload'),val:0,label:'uploadPower',uploadPower:false},
+                    {name:this.$t('project.download'),val:1,label:'dowloadPower',dowloadPower:false},
+                    {name:this.$t('project.view'),val:2,label:'viewPower',viewPower:false},
+                    {name:this.$t('project.approve'),val:3,label:'approvalPower',approvalPower:false}
                 ],
 				//编辑界面数据
 				editForm: {
@@ -249,7 +245,7 @@
                     this.editFormVisible = false;
                     if (res.code == "ok") {
                         this.$message({
-                            message: '修改成功',
+                            message: this.$t('prompt.success'),
                             type: 'success'
                         });
                         this.getPowerList();

+ 41 - 27
ys_int/src/views/project/project.vue

@@ -4,13 +4,13 @@
 		<el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
 			<el-form :inline="true" :model="filters">
 				<el-form-item>
-					<el-input v-model="filters.keyName" placeholder="请输入项目名称"></el-input>
+					<el-input v-model="filters.keyName" :placeholder="$t('project.inputProName')"></el-input>
 				</el-form-item>
 				<el-form-item>
-					<el-button type="primary" v-on:click="getProject">查询</el-button>
+					<el-button type="primary" v-on:click="getProject">{{$t('base.query')}}</el-button>
 				</el-form-item>
 				<el-form-item style="float:right;" v-if="user.parentId == 1 && user.subordinateType == 0">
-					<el-button type="primary" @click="handleAdd">新增</el-button>
+					<el-button type="primary" @click="handleAdd">{{$t('base.add')}}</el-button>
 				</el-form-item>
 			</el-form>
 		</el-col>
@@ -19,18 +19,18 @@
 		<el-table :data="list" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
 			<el-table-column type="index" width="60">
 			</el-table-column>
-			<el-table-column prop="projectName" label="项目名称" width="250" sortable>
+			<el-table-column prop="projectName" :label="$t('project.proName')" width="250" sortable>
                 <template slot-scope="scope">
                     <el-link :underline="false" type="primary" @click="toDetail(scope.row)">{{scope.row.projectName}}</el-link>
 				</template>
 			</el-table-column>
-            <el-table-column prop="ownerCompanyName" label="资产方公司" sortable>
+            <el-table-column prop="ownerCompanyName" :label="$t('project.assName')" sortable>
 			</el-table-column>
-            <el-table-column prop="customCompaniesStr" label="生产方公司" width="450">
+            <el-table-column prop="customCompaniesStr" :label="$t('project.cusName')" width="450">
 			</el-table-column>
-            <el-table-column prop="manager" label="项目经理" width="100" align="center" sortable>
+            <el-table-column prop="manager" :label="$t('project.manager')" width="100" align="center" sortable>
 			</el-table-column>
-			<el-table-column prop="indate" label="创建时间" width="250" align="center" sortable>
+			<el-table-column prop="indate" :label="$t('project.indate')" width="250" align="center" sortable>
 			</el-table-column>
 			<!-- <el-table-column label="操作" width="250" align="center">
 				<template slot-scope="scope">
@@ -55,16 +55,16 @@
 		</el-col>
 
         <!--新增界面-->
-		<el-dialog title="新增项目" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass='customWidth'>
+		<el-dialog :title="$t('project.addPro')" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass='customWidth'>
 			<el-form :model="addForm" label-width="120px" :rules="formRules" ref="addForm">
                 <el-col :span="24">
-                    <el-form-item label="项目名称" prop="projectName">
-                        <el-input v-model="addForm.projectName" autocomplete="off" placeholder="请输入项目名称" style="width:510px"></el-input>
+                    <el-form-item :label="$t('project.proName')" prop="projectName">
+                        <el-input v-model="addForm.projectName" autocomplete="off" :placeholder="$t('project.inputProName')" style="width:510px"></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="24">
-                    <el-form-item label="项目模具" prop="mold">
-                        <el-select v-model="addForm.mold" @change="companyChange" clearable filterable multiple placeholder="请选择项目模具" value-key='id' style="width:510px">
+                    <el-form-item :label="$t('project.moldName')" prop="mold">
+                        <el-select v-model="addForm.mold" @change="companyChange" clearable filterable multiple :placeholder="$t('project.inputMoldName')" value-key='id' style="width:510px">
                             <el-option v-for="item in molds" :key="item.id" :label="item.modelName" :value="item">
                                 <span style="float: left">{{ item.modelName }}</span>
                                 <span style="float: right; color: #8492a6; font-size: 6px;margin-right:17px;">{{ item.produceCompany }}</span>
@@ -73,8 +73,8 @@
                     </el-form-item>
                 </el-col>
                 <el-col :span="24">
-                    <el-form-item label="项目经理" prop="managerId">
-                        <el-select v-model="addForm.managerId" clearable filterable placeholder="请选择项目经理" value-key='id' style="width:510px">
+                    <el-form-item :label="$t('project.manager')" prop="managerId">
+                        <el-select v-model="addForm.managerId" clearable filterable :placeholder="$t('project.inputManager')" value-key='id' style="width:510px">
                             <!-- <el-option v-for="item in charger" :key="item.id" :label="item.username" :value="item">
                             </el-option> -->
                             <el-option v-for="item in charger" :key="item.id" :label="item.username" :value="item">
@@ -86,8 +86,8 @@
                 </el-col>
 			</el-form>
 			<div slot="footer" class="dialog-footer">
-				<el-button @click.native="addFormVisible = false">取消</el-button>
-				<el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button>
+				<el-button @click.native="addFormVisible = false">{{$t('el.messagebox.cancel')}}</el-button>
+				<el-button type="primary" @click.native="addSubmit" :loading="addLoading">{{$t('el.messagebox.confirm')}}</el-button>
 			</div>
 		</el-dialog>
 	</section>
@@ -98,6 +98,25 @@
 
 	export default {
 		data() {
+            const msg = (rule, value, callback) => {
+                if (!value) {
+                    switch(rule.field) {
+                        case "projectName":
+                            return callback(new Error(this.$t('project.inputProName')));
+                            break;
+                        case "mold":
+                            return callback(new Error(this.$t('project.inputMoldName')));
+                            break;
+                        case "managerId":
+                            return callback(new Error(this.$t('project.inputManager')));
+                            break;
+                        default:
+                            callback();
+                    } 
+                } else {
+                    callback();
+                }
+            };
 			return {
 				filters: {
 					keyName: ''
@@ -115,13 +134,13 @@
 
                 formRules: {
 					projectName: [
-						{ required: true, message: '请输入项目名称', trigger: 'blur' }
+						{ required: true, validator: msg, trigger: 'blur' }
                     ],
                     mold: [
-                        { required: true, message: '请选择项目模具', trigger: ['blur','change'] }
+                        { required: true, validator: msg, trigger: ['blur','change'] }
                     ],
                     managerId: [
-                        { required: true, message: '请选择项目经理', trigger: ['blur','change'] }
+                        { required: true, validator: msg, trigger: ['blur','change'] }
                     ]
                 },
                 
@@ -311,7 +330,7 @@
                             if (res.code == "ok") {
                                 this.addFormVisible = false;
                                 this.$message({
-                                    message: '创建成功',
+                                    message: this.$t('prompt.success2'),
                                     type: 'success'
                                 });
                                 this.getProject();
@@ -346,9 +365,4 @@
 			this.getProject();
 		}
 	}
-
-</script>
-
-<style scoped>
-
-</style>
+</script>

+ 106 - 83
ys_int/src/views/project/projectDetail.vue

@@ -4,7 +4,7 @@
         <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
             <el-form :inline="true">
                 <el-form-item>
-                    <el-button type="text" @click="backToList" icon="el-icon-back" class="back">返回</el-button>
+                    <el-button type="text" @click="backToList" icon="el-icon-back" class="back">{{$t('base.back')}}</el-button>
                 </el-form-item>
                 <el-form-item class="divLine">
                 </el-form-item>
@@ -16,28 +16,29 @@
 
 
         <el-col :span="24" :style="allDetail">
-            <el-col :span="24" class="title">项目基本信息
+            <el-col :span="24" class="title">
+                {{$t('project.detail')}}
                 <i class="el-icon-edit editDetail" v-if="user.id == proDetail.managerId || user.id == proDetail.creatorId" @click="edit"></i>
             </el-col>
             <el-col :span="24" class="main">
                 <el-col :span="6" class="detail">
-                    项目编号
+                    {{$t('project.projectNo')}}
                     <span class="info">{{proDetail.projectNo}}</span>
                 </el-col>
                 <el-col :span="6" class="detail">
-                    项目经理
+                    {{$t('project.manager')}}
                     <span class="info">{{proDetail.manager}}</span>
                 </el-col>
                 <el-col :span="6" class="detail">
-                    资产方审批人
+                    {{$t('project.ownerApprover')}}
                     <span class="info">{{proDetail.ownerApprover}}</span>
                 </el-col>
                 <el-col :span="6" class="detail">
-                    生产方审批人
+                    {{$t('project.customerApprover')}}
                     <span class="info">{{proDetail.customerApprover}}</span>
                 </el-col>
                 <el-col :span="24" class="detail">
-                    生产方公司
+                    {{$t('project.cusName')}}
                     <span class="info" v-for="(item, index) in proDetail.customCompanies">
                         {{item.companyName}}
                         <span v-if="index != proDetail.customCompanies.length-1">、</span>
@@ -51,7 +52,7 @@
                     </span>
                 </el-col> -->
                 <el-col :span="24" class="detail">
-                    普通成员
+                    {{$t('project.users')}}
                     <span class="info" v-for="(item, index) in proDetail.participateUsers">
                         {{item.username}}
                         <span v-if="index != proDetail.participateUsers.length-1">、</span>
@@ -70,29 +71,29 @@
                 <el-collapse class="activeNames" v-model="activeNames">
                     <el-collapse-item name="1">
                         <template slot="title">
-                            <el-col :span="24" class="title">项目模具</el-col>
+                            <el-col :span="24" class="title">{{$t('project.moldName')}}</el-col>
                         </template>
                         <el-col :span="24" class="detail">
                             <el-table :data="proDetail.models" highlight-current-row v-loading="modelsLoading" style="width: 100%;">
                                 <el-table-column type="index" width="40"></el-table-column>
-                                <el-table-column prop="modelNo" label="模具编号" width="200" sortable>
+                                <el-table-column prop="modelNo" :label="$t('mold.moldNo')" width="200" sortable>
                                     <template slot-scope="scope">
                                         <span class="model" @click="toMold(scope.row.id)">{{scope.row.modelNo}}</span>
                                     </template>
                                 </el-table-column>
-                                <el-table-column prop="modelName" label="模具名称" width="500" sortable></el-table-column>
-                                <el-table-column prop="produceCompanyName" label="所属生产商" sortable></el-table-column>
+                                <el-table-column prop="modelName" :label="$t('mold.modelName')" width="500" sortable></el-table-column>
+                                <el-table-column prop="produceCompanyName" :label="$t('mold.factoryName')" sortable></el-table-column>
                             </el-table>
                         </el-col>
                     </el-collapse-item>
 
                     <el-collapse-item name="2">
                         <template slot="title">
-                            <el-col :span="24" class="title">项目文档
+                            <el-col :span="24" class="title">{{$t('project.proFile')}}
                                 <!-- update == 1 -->
                                 <span @click='doSomething'>
                                     <el-upload v-if="user.id == proDetail.managerId" ref="upload" action="customize" :http-request="uploadFile" :show-file-list="false" :limit="1" style="float:right;margin-right:20px;">
-                                        <el-button size="mini" type="primary" :loading="upLoading">点击上传</el-button>
+                                        <el-button size="mini" type="primary" :loading="upLoading">{{$t('base.upload')}}</el-button>
                                     </el-upload>
                                 </span>
                             </el-col>
@@ -100,23 +101,18 @@
                         <el-col :span="24" class="detail">
                             <el-table :data="files" highlight-current-row v-loading="listLoading" style="width: 100%;">
                                 <el-table-column type="index" width="40"></el-table-column>
-                                <el-table-column prop="fileName" label="名称" sortable></el-table-column>
-                                <el-table-column prop="fileSize" label="大小" width="150" align="center" sortable></el-table-column>
-                                <el-table-column prop="uploader" label="上传者" width="120" align="center" sortable></el-table-column>
-                                <el-table-column prop="indate" label="上传时间" width="200" align="center" sortable></el-table-column>
-                                <el-table-column label="操作" width="220" align="center" sortable>
+                                <el-table-column prop="fileName" :label="$t('project.fileName')" sortable></el-table-column>
+                                <el-table-column prop="fileSize" :label="$t('project.fileSize')" width="150" align="center" sortable></el-table-column>
+                                <el-table-column prop="uploader" :label="$t('project.uploader')" width="120" align="center" sortable></el-table-column>
+                                <el-table-column prop="indate" :label="$t('project.uploadTime')" width="200" align="center" sortable></el-table-column>
+                                <el-table-column :label="$t('base.operate')" width="220" align="center" sortable>
                                     <template slot-scope="scope" v-if="download == 1">
                                         <a :href="scope.row.url" :download="scope.row.fileName">
-                                            <el-button size="small" @click="dowloadFile(scope.row)">
-                                                下载
-                                            </el-button>
+                                            <el-button size="small" @click="dowloadFile(scope.row)">{{$t('project.download')}}</el-button>
                                         </a>
-                                        <el-button size="small" type="danger" @click="fileDel(scope.row.id)"
-                                            v-if="scope.row.uploaderId == user.id">删除</el-button>
-                                    </template>
-                                    <template slot-scope="scope" v-else>
-                                        -
+                                        <el-button size="small" type="danger" @click="fileDel(scope.row.id)"v-if="scope.row.uploaderId == user.id">{{$t('el.upload.delete')}}</el-button>
                                     </template>
+                                    <template slot-scope="scope" v-else>-</template>
                                 </el-table-column>
                             </el-table>
                         </el-col>
@@ -124,15 +120,15 @@
 
                     <el-collapse-item name="3">
                         <template slot="title">
-                            <el-col :span="24" class="title">操作记录</el-col>
+                            <el-col :span="24" class="title">{{$t('project.operation')}}</el-col>
                         </template>
                         <el-col :span="24" class="detail">
                             <el-table :data="opers" highlight-current-row v-loading="oplistLoading" style="width: 100%;">
                                 <el-table-column type="index" width="40"></el-table-column>
-                                <el-table-column prop="content" label="操作" width="120" sortable></el-table-column>
-                                <el-table-column prop="fileName" label="操作文档名称" sortable></el-table-column>
-                                <el-table-column prop="operator" label="操作人" width="120" align="center" sortable></el-table-column>
-                                <el-table-column prop="indate" label="操作时间" width="200" align="center" sortable></el-table-column>
+                                <el-table-column prop="content" :label="$t('base.operate')" width="120" sortable></el-table-column>
+                                <el-table-column prop="fileName" :label="$t('project.operFileName')" sortable></el-table-column>
+                                <el-table-column prop="operator" :label="$t('project.operator')" width="120" align="center" sortable></el-table-column>
+                                <el-table-column prop="indate" :label="$t('project.operTime')" width="200" align="center" sortable></el-table-column>
                             </el-table>
                         </el-col>
                     </el-collapse-item>
@@ -142,16 +138,16 @@
         </el-col>
 
         <!--编辑界面-->
-		<el-dialog title="编辑项目" v-if="editFormVisible" :visible.sync="editFormVisible" :close-on-click-modal="false" customClass='customWidth'>
+		<el-dialog :title="$t('project.editPro')" v-if="editFormVisible" :visible.sync="editFormVisible" :close-on-click-modal="false" customClass='customWidth'>
 			<el-form :model="editForm" label-width="120px" :rules="formRules" ref="editForm">
                 <el-col :span="24">
-                    <el-form-item label="项目名称" prop="projectName">
-                        <el-input v-model="editForm.projectName" autocomplete="off" placeholder="请输入项目名称" style="width:510px"></el-input>
+                    <el-form-item :label="$t('project.proName')" prop="projectName">
+                        <el-input v-model="editForm.projectName" autocomplete="off" :placeholder="$t('project.inputProName')" style="width:510px"></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="24" v-if="user.parentId == 1 && user.subordinateType == 0">
-                    <el-form-item label="项目模具" prop="modelIds">
-                        <el-select v-model="editForm.modelIds" @change="companyChange" clearable filterable multiple placeholder="请选择项目模具" value-key='id' style="width:510px">
+                    <el-form-item :label="$t('project.moldName')" prop="modelIds">
+                        <el-select v-model="editForm.modelIds" @change="companyChange" clearable filterable multiple :placeholder="$t('project.inputMoldName')" value-key='id' style="width:510px">
                             <el-option v-for="item in molds" :key="item.id" :label="item.modelName" :value="item">
                                 <span style="float: left">{{ item.modelName }}</span>
                                 <span style="float: right; color: #8492a6; font-size: 13px;margin-right:17px;">{{ item.produceCompanyName }}</span>
@@ -160,8 +156,8 @@
                     </el-form-item>
                 </el-col>
                 <el-col :span="24" v-if="user.parentId == 1 && user.subordinateType == 0">
-                    <el-form-item label="项目经理" prop="managerId">
-                        <el-select v-model="editForm.managerId" @change="changeStaff(0)" clearable filterable placeholder="请选择项目经理" value-key='id' style="width:510px">
+                    <el-form-item :label="$t('project.manager')" prop="managerId">
+                        <el-select v-model="editForm.managerId" @change="changeStaff(0)" clearable filterable :placeholder="$t('project.inputManager')" value-key='id' style="width:510px">
                             <!-- <el-option v-for="item in charger" :key="item.id" :label="item.username" :value="item">
                             </el-option> -->
                             <el-option v-for="item in charger" :key="item.id" :label="item.username" :value="item">
@@ -172,9 +168,9 @@
                     </el-form-item>
                 </el-col>
                 <el-col :span="24">
-                    <el-form-item label="资产方审批人">
+                    <el-form-item :label="$t('project.ownerApprover')">
                         <!--  prop="ownerApproverId" -->
-                        <el-select v-model="editForm.ownerApproverId" @change="changeStaff(0)" clearable filterable placeholder="请选择资产方审批人" value-key='id' style="width:510px">
+                        <el-select v-model="editForm.ownerApproverId" @change="changeStaff(0)" clearable filterable :placeholder="$t('project.inputOwnerApprover')" value-key='id' style="width:510px">
                             <!-- <el-option v-for="item in assets" :key="item.id" :label="item.username" :value="item.id">
                             </el-option> -->
                             <el-option v-for="item in assets" :key="item.id" :label="item.username" :value="item.id">
@@ -185,9 +181,9 @@
                     </el-form-item>
                 </el-col>
                 <el-col :span="24">
-                    <el-form-item label="生产方审批人">
+                    <el-form-item :label="$t('project.customerApprover')">
                         <!--  prop="customerApproverId" -->
-                        <el-select v-model="editForm.customerApproverId" @change="changeStaff(0)" clearable filterable placeholder="请选择生产方审批人" value-key='id' style="width:510px">
+                        <el-select v-model="editForm.customerApproverId" @change="changeStaff(0)" clearable filterable :placeholder="$t('project.inputCustomerApprover')" value-key='id' style="width:510px">
                             <!-- <el-option v-for="item in produce" :key="item.id" :label="item.username" :value="item.id">
                             </el-option> -->
                             <el-option v-for="item in produce" :key="item.id" :label="item.username" :value="item.id">
@@ -198,8 +194,8 @@
                     </el-form-item>
                 </el-col>
                 <el-col :span="24">
-                    <el-form-item label="项目普通用户">
-                        <el-select v-model="editForm.users" @change="changeStaff(1)" clearable filterable multiple placeholder="请选择项目普通用户" style="width:510px">
+                    <el-form-item :label="$t('project.users')">
+                        <el-select v-model="editForm.users" @change="changeStaff(1)" clearable filterable multiple :placeholder="$t('project.inputUsers')" style="width:510px">
                             <!-- <el-option v-for="item in general" :key="item.id" :label="item.username" :value="item.id">
                             </el-option> -->
                             <el-option v-for="item in general" :key="item.id" :label="item.username" :value="item.id">
@@ -227,36 +223,36 @@
                 </el-col> -->
 			</el-form>
 			<div slot="footer" class="dialog-footer">
-                <el-button size="small" style="float:left;margin-left:20px;" type="primary" @click.native="addStaff" :loading="editLoading">添加人员</el-button>
-				<el-button @click.native="editFormVisible = false">取消</el-button>
-				<el-button type="primary" @click.native="addSubmit" :loading="editLoading">提交</el-button>
+                <el-button size="small" style="float:left;margin-left:20px;" type="primary" @click.native="addStaff" :loading="editLoading">{{$t('project.addUser')}}</el-button>
+				<el-button @click.native="editFormVisible = false">{{$t('el.messagebox.cancel')}}</el-button>
+				<el-button type="primary" @click.native="addSubmit" :loading="editLoading">{{$t('el.messagebox.confirm')}}</el-button>
 			</div>
 		</el-dialog>
 
         <!--新增界面-->
-		<el-dialog title="新增人员" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass='customWidth'>
+		<el-dialog :title="$t('project.addPeo')" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass='customWidth'>
 			<el-form :model="addForm" label-width="100px" :rules="formRules" ref="addForm" :inline="true" class="demo-form-inline">
-				<el-form-item label="姓名" prop="username">
-					<el-input v-model="addForm.username" autocomplete="off" placeholder="请输入姓名" style="width:202px"></el-input>
+				<el-form-item :label="$t('project.name')" prop="username">
+					<el-input v-model="addForm.username" autocomplete="off" :placeholder="$t('project.inputName')" style="width:202px"></el-input>
 				</el-form-item>
-				<el-form-item label="手机号" prop="account">
-					<el-input v-model="addForm.account" autocomplete="off" placeholder="请输入手机号(登录账号)" style="width:202px"></el-input>
+				<el-form-item :label="$t('project.mobile')" prop="account">
+					<el-input v-model="addForm.account" autocomplete="off" :placeholder="$t('project.inputMobile')" style="width:202px"></el-input>
 				</el-form-item>
-                <el-form-item label="公司" prop="companyId">
-					<el-select v-model="addForm.companyId" clearable filterable placeholder="请选择所属公司" style="width:202px">
+                <el-form-item :label="$t('project.company')" prop="companyId">
+					<el-select v-model="addForm.companyId" clearable filterable :placeholder="$t('project.inputCompany')" style="width:202px">
                         <el-option v-for="item in staffComp" :key="item.id" :label="item.companyName" :value="item.id">
                         </el-option>
                     </el-select>
 				</el-form-item>
-                <el-form-item label="备注">
-                    <el-input v-model="addForm.roleName" autocomplete="off" placeholder="请输入备注" style="width:202px"></el-input>
+                <el-form-item :label="$t('project.remark')">
+                    <el-input v-model="addForm.roleName" autocomplete="off" :placeholder="$t('project.inputRemark')" style="width:202px"></el-input>
 				</el-form-item>
 			</el-form>
 			<div slot="footer" class="dialog-footer">
-                <span style="color:#f00;float:left;margin-left:60px;">初始密码:000000</span>
-				<el-button @click.native="addFormVisible = false">取消</el-button>
-                <el-button type="primary" @click.native="addPeople(1)" :loading="addLoading">提交并新增</el-button>
-				<el-button type="primary" @click.native="addPeople(0)" :loading="addLoading">提交</el-button>
+                <span style="color:#f00;float:left;margin-left:60px;">{{$t('project.initial')}}:000000</span>
+				<el-button @click.native="addFormVisible = false">{{$t('el.messagebox.cancel')}}</el-button>
+                <el-button type="primary" @click.native="addPeople(1)" :loading="addLoading">{{$t('project.uploadAndAdd')}}</el-button>
+				<el-button type="primary" @click.native="addPeople(0)" :loading="addLoading">{{$t('el.messagebox.confirm')}}</el-button>
 			</div>
 		</el-dialog>
     </section>
@@ -266,18 +262,49 @@
     import util from "../../common/js/util";
     export default {
         data() {
-            var checkPhone = (rule, value, callback) => {
+            const checkPhone = (rule, value, callback) => {
                 if (!value) {
-                    return callback(new Error('请输入联系方式'));
+                    return callback(this.$t('project.inputMobile'));
                 } else {
                     const reg = /^1[0-9]\d{9}$/
                     if (reg.test(value)) {
                         callback();
                     } else {
-                        return callback(new Error('请输入正确的联系方式'));
+                        return callback(new Error(this.$t('project.inputTrueMobile')));
                     }
                 }
             };
+            const msg = (rule, value, callback) => {
+                if (!value) {
+                    switch(rule.field) {
+                        case "projectName":
+                            return callback(new Error(this.$t('project.inputProName')));
+                            break;
+                        case "modelIds":
+                            return callback(new Error(this.$t('project.inputMoldName')));
+                            break;
+                        case "managerId":
+                            return callback(new Error(this.$t('project.inputManager')));
+                            break;
+                        case "ownerApproverId":
+                            return callback(new Error(this.$t('project.inputOwnerApprover')));
+                            break;
+                        case "customerApproverId":
+                            return callback(new Error(this.$t('project.inputCustomerApprover')));
+                            break;
+                        case "username":
+                            return callback(new Error(this.$t('project.inputName')));
+                            break;
+                        case "companyId":
+                            return callback(new Error(this.$t('project.inputCompany')));
+                            break;
+                        default:
+                            callback();
+                    } 
+                } else {
+                    callback();
+                }
+            };
             return {
                 activeNames: ['1','2','3'],
 
@@ -316,35 +343,29 @@
 
                 formRules: {
 					projectName: [
-						{ required: true, message: '请输入项目名称', trigger: 'blur' }
-                    ],
-                    customerCompany: [
-                        { required: true, message: '请选择客户公司', trigger: 'blur' }
+						{ required: true, validator: msg, trigger: 'blur' }
                     ],
                     modelIds: [
-                        { required: true, message: '请选择项目模具', trigger: ['blur','change'] }
+                        { required: true, validator: msg, trigger: ['blur','change'] }
                     ],
                     managerId: [
-                        { required: true, message: '请选择项目经理', trigger: ['blur','change'] }
+                        { required: true, validator: msg, trigger: ['blur','change'] }
                     ],
                     ownerApproverId: [
-                        { required: true, message: '请选择资产方审批人', trigger: ['blur','change'] }
+                        { required: true, validator: msg, trigger: ['blur','change'] }
                     ],
                     customerApproverId: [
-                        { required: true, message: '请选择生产方审批人', trigger: ['blur','change'] }
+                        { required: true, validator: msg, trigger: ['blur','change'] }
                     ],
                     // 新建人员
                     username: [
-						{ required: true, message: '请输入姓名', trigger: 'blur' }
+						{ required: true, validator: msg, trigger: 'blur' }
                     ],
                     account: [
 						{ required: true, validator: checkPhone, trigger: 'blur'}
                     ],
-                    teamName: [
-						{ required: true, message: '请选择人员类型', trigger: ["blur",'change'] }
-					],
                     companyId: [
-						{ required: true, message: '请选择所属公司', trigger: ["blur",'change'] }
+						{ required: true, validator: msg, trigger: ["blur",'change'] }
 					],
                 },
                 
@@ -831,7 +852,7 @@
                             this.editFormVisible = false;
                             if (res.code == "ok") {
                                 this.$message({
-                                    message: '修改成功',
+                                    message: this.$t('prompt.success'),
                                     type: 'success'
                                 });
                                 this.getDetail();
@@ -880,7 +901,7 @@
                                 if(i == 0){ this.addFormVisible = false; }
                                 this.getStaff();
                                 this.$message({
-                                    message: '创建成功',
+                                    message: this.$t('prompt.success2'),
                                     type: 'success'
                                 });
                             } else {
@@ -913,7 +934,7 @@
                     this.$refs.upload.clearFiles();
                     if (res.code == "ok") {
                         this.$message({
-                            message: '上传成功',
+                            message: this.$t('prompt.success4'),
                             type: 'success'
                         });
                         this.getFileList();
@@ -954,15 +975,17 @@
 
             //删除上传文件
 			fileDel(id) {
-                this.$confirm('确认删除该文档吗?', '提示', {
-					type: 'warning'
+                 this.$confirm(this.$t('project.delFile'), this.$t('el.messagebox.title'), {
+					confirmButtonText: this.$t('el.messagebox.confirm'),
+                    cancelButtonText: this.$t('el.messagebox.cancel'),
+                    type: 'warning'
 				}).then(() => {
                     this.http.post(this.port.project.delFile, {
                         id: id
                     }, res => {
                         if (res.code == "ok") {
                             this.$message({
-                                message: '删除成功',
+                                message: this.$t('prompt.success3'),
                                 type: 'success'
                             });
                             this.getFileList();

+ 83 - 65
ys_int/src/views/project/staff.vue

@@ -5,7 +5,7 @@
 			<el-form :inline="true" :model="filters">
                 <el-col :span="3">
                     <el-form-item>
-                        <el-select v-model="filters.companyId" clearable filterable placeholder="请选择公司">
+                        <el-select v-model="filters.companyId" clearable filterable :placeholder="$t('basic.chooseComp')">
                             <el-option v-for="item in allCompanies" :key="item.id" :label="item.companyName" :value="item.id">
                             </el-option>
                         </el-select>
@@ -13,20 +13,20 @@
                 </el-col>
                 <el-col :span="3">
                     <el-form-item>
-                        <el-select v-model="filters.flag" placeholder="请选择查询条件">
-                            <el-option label="姓名" value="0"></el-option>
-                            <el-option label="用户名" value="1"></el-option>
+                        <el-select v-model="filters.flag" :placeholder="$t('base.choose')">
+                            <el-option :label="$t('project.name')" value="0"></el-option>
+                            <el-option :label="$t('project.mobile')" value="1"></el-option>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-form-item>
-                    <el-input v-model="filters.keyName" clearable placeholder="请输入姓名或账号进行搜索" style="width:250px;"></el-input>
+                    <el-input v-model="filters.keyName" clearable :placeholder="$t('msg.nameSearch')" style="width:250px;"></el-input>
                 </el-form-item>
 				<el-form-item>
-					<el-button type="primary" @click="getUsers">查询</el-button>
+					<el-button type="primary" @click="getUsers">{{$t('base.query')}}</el-button>
 				</el-form-item>
 				<el-form-item style="float:right;" v-if="user.subordinateType == 0">
-					<el-button type="primary" @click="handleAdd">新增</el-button>
+					<el-button type="primary" @click="handleAdd">{{$t('base.add')}}</el-button>
 				</el-form-item>
 			</el-form>
 		</el-col>
@@ -34,10 +34,10 @@
 		<!--列表-->
 		<el-table :data="list" highlight-current-row :height="tableHeight" v-loading="listLoading" style="width: 100%;">
 			<el-table-column type="index" width="60"></el-table-column>
-			<el-table-column prop="username" label="姓名" width="120" sortable></el-table-column>
-			<el-table-column prop="account" label="手机号" width="180" sortable></el-table-column>
+			<el-table-column prop="username" :label="$t('project.name')" width="120" sortable></el-table-column>
+			<el-table-column prop="account" :label="$t('project.mobile')" width="180" sortable></el-table-column>
 			<!-- <el-table-column prop="mobile" label="联系方式" width="150" sortable></el-table-column> -->
-            <el-table-column prop="projects" label="参与项目" sortable>
+            <el-table-column prop="projects" :label="$t('project.partake')" sortable>
                 <template slot-scope="scope">
                     <span class="info" v-for="(item, index) in scope.row.projects">
                         {{item.projectName}}
@@ -45,14 +45,14 @@
                     </span>
                 </template>
 			</el-table-column>
-            <el-table-column prop="roleName" label="备注" width="180" sortable></el-table-column>
-            <el-table-column prop="teamName" label="类型" width="120" align="center" sortable></el-table-column>
-			<el-table-column prop="companyName" label="所属公司" sortable></el-table-column>
-			<el-table-column label="操作" align="left" width="230">
+            <el-table-column prop="roleName" :label="$t('project.remark')" width="180" sortable></el-table-column>
+            <el-table-column prop="teamName" :label="$t('project.type')" width="120" align="center" sortable></el-table-column>
+			<el-table-column prop="companyName" :label="$t('project.company')" sortable></el-table-column>
+			<el-table-column :label="$t('base.operate')" align="left" width="230">
 				<template slot-scope="scope" v-if="user.id == scope.row.parentId || user.isManager == 1 || (user.parentId == 1 && user.subordinateType == 0)">
-					<el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
-					<el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button>
-                    <el-button type="primary" size="small" @click="invite(scope.$index, scope.row)" v-if="user.id != 1 && scope.row.projects != null && scope.row.projects.length == 1">邀请</el-button>
+					<el-button size="small" @click="handleEdit(scope.$index, scope.row)">{{$t('base.edit')}}</el-button>
+					<el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">{{$t('el.upload.delete')}}</el-button>
+                    <el-button type="primary" size="small" @click="invite(scope.$index, scope.row)" v-if="user.id != 1 && scope.row.projects != null && scope.row.projects.length == 1">{{$t('base.invite')}}</el-button>
 				</template>
 			</el-table-column>
 		</el-table>
@@ -71,64 +71,64 @@
 		</el-col>
 
         <!--新增界面-->
-		<el-dialog title="新增人员" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass='customWidth'>
+		<el-dialog :title="$t('project.addPeo')" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass='customWidth'>
 			<el-form :model="addForm" label-width="100px" :rules="formRules" ref="addForm" :inline="true" class="demo-form-inline">
-				<el-form-item label="姓名" prop="username">
-					<el-input v-model="addForm.username" autocomplete="off" placeholder="请输入姓名"></el-input>
+				<el-form-item :label="$t('project.name')" prop="username">
+					<el-input v-model="addForm.username" autocomplete="off" :placeholder="$t('project.inputName')" style="width:202px"></el-input>
 				</el-form-item>
-				<el-form-item label="手机号" prop="account">
-					<el-input v-model="addForm.account" autocomplete="off" placeholder="请输入手机号(登录账号)"></el-input>
+				<el-form-item :label="$t('project.mobile')" prop="account">
+					<el-input v-model="addForm.account" autocomplete="off" :placeholder="$t('project.inputMobile')" style="width:202px"></el-input>
 				</el-form-item>
-                <el-form-item v-if="!(user.parentId == 1 && user.subordinateType == 0)" label="参与项目" prop="projectIds">
-					<el-select v-model="addForm.projectIds" @change="choseProject" clearable filterable placeholder="请选择参与项目" style="width:202px">
+                <el-form-item v-if="!(user.parentId == 1 && user.subordinateType == 0)" :label="$t('project.partake')" prop="projectIds">
+					<el-select v-model="addForm.projectIds" @change="choseProject" clearable filterable :placeholder="$t('project.inputPartake')" style="width:202px">
                         <el-option v-for="item in projects" :key="item.id" :label="item.projectName" :value="item.id">
                         </el-option>
                     </el-select>
 				</el-form-item>
-                <el-form-item label="公司" prop="companyId">
-					<el-select v-model="addForm.companyId" clearable filterable placeholder="请选择所属公司" style="width:202px">
+                <el-form-item :label="$t('project.company')" prop="companyId">
+					<el-select v-model="addForm.companyId" clearable filterable :placeholder="$t('project.inputCompany')" style="width:202px">
                         <el-option v-for="item in company" :key="item.id" :label="item.companyName" :value="item.id">
                         </el-option>
                     </el-select>
 				</el-form-item>
-                <el-form-item label="备注">
-                    <el-input v-model="addForm.roleName" autocomplete="off" placeholder="请输入备注"></el-input>
+                <el-form-item :label="$t('project.remark')">
+                    <el-input v-model="addForm.roleName" autocomplete="off" :placeholder="$t('project.inputRemark')" style="width:202px"></el-input>
 				</el-form-item>
 			</el-form>
 			<div slot="footer" class="dialog-footer">
-                <span style="color:#f00;float:left;margin-left:60px;">初始密码:000000</span>
-				<el-button @click.native="addFormVisible = false">取消</el-button>
-				<el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button>
+                <span style="color:#f00;float:left;margin-left:60px;">{{$t('project.initial')}}:000000</span>
+				<el-button @click.native="addFormVisible = false">{{$t('el.messagebox.cancel')}}</el-button>
+				<el-button type="primary" @click.native="addSubmit" :loading="addLoading">{{$t('el.messagebox.confirm')}}</el-button>
 			</div>
 		</el-dialog>
 
 		<!--编辑界面-->
-		<el-dialog title="编辑人员" v-if="editFormVisible" :visible.sync="editFormVisible" :close-on-click-modal="false" customClass='customWidth'>
-			<el-form :model="editForm" label-width="80px" :rules="formRules" ref="editForm" :inline="true" class="demo-form-inline">
-				<el-form-item label="姓名" prop="username">
-					<el-input v-model="editForm.username" autocomplete="off" placeholder="请输入姓名"></el-input>
+		<el-dialog :title="$t('project.editPeo')" v-if="editFormVisible" :visible.sync="editFormVisible" :close-on-click-modal="false" customClass='customWidth'>
+			<el-form :model="editForm" label-width="100px" :rules="formRules" ref="editForm" :inline="true" class="demo-form-inline">
+				<el-form-item :label="$t('project.name')" prop="username">
+					<el-input v-model="editForm.username" autocomplete="off" :placeholder="$t('project.inputName')"></el-input>
 				</el-form-item>
-				<el-form-item label="手机号" prop="account">
-					<el-input v-model="editForm.account" disabled autocomplete="off" placeholder="请输入手机号(登录账号)"></el-input>
+				<el-form-item :label="$t('project.mobile')" prop="account">
+					<el-input v-model="editForm.account" disabled autocomplete="off" :placeholder="$t('project.inputPartake')"></el-input>
 				</el-form-item>
-                <el-form-item label="公司" prop="companyId">
-                    <el-input v-model="editForm.companyId" disabled autocomplete="off" placeholder="请选择所属公司"></el-input>
+                <el-form-item :label="$t('project.company')" prop="companyId">
+                    <el-input v-model="editForm.companyId" disabled autocomplete="off" :placeholder="$t('project.inputCompany')"></el-input>
 				</el-form-item>
-                <el-form-item label="备注">
-                    <el-input v-model="editForm.roleName" autocomplete="off" placeholder="请输入备注"></el-input>
+                <el-form-item :label="$t('project.remark')">
+                    <el-input v-model="editForm.roleName" autocomplete="off" :placeholder="$t('project.inputRemark')"></el-input>
 				</el-form-item>
 			</el-form>
 			<div slot="footer" class="dialog-footer">
-                 <span style="color:#f00;float:left;margin-left:60px;">初始密码:000000</span>
-				<el-button @click.native="editFormVisible = false">取消</el-button>
-				<el-button type="primary" @click.native="editSubmit" :loading="editLoading">提交</el-button>
+                 <span style="color:#f00;float:left;margin-left:60px;">{{$t('project.initial')}}:000000</span>
+				<el-button @click.native="editFormVisible = false">{{$t('el.messagebox.cancel')}}</el-button>
+				<el-button type="primary" @click.native="editSubmit" :loading="editLoading">{{$t('el.messagebox.confirm')}}</el-button>
 			</div>
 		</el-dialog>
 
         <!--邀请界面-->
-		<el-dialog title="邀请" v-if="inviteVisible" :visible.sync="inviteVisible" :close-on-click-modal="false" customClass='customWidth'>
-			<el-input placeholder="请复制邀请链接" v-model="inviteLink" class="input-with-select">
-                <el-button slot="append" v-clipboard:copy="inviteLink" v-clipboard:success="copyLink" v-clipboard:error="onError" type="primary" icon="el-icon-share">复制链接</el-button>
+		<el-dialog :title="$t('base.invite')" v-if="inviteVisible" :visible.sync="inviteVisible" :close-on-click-modal="false" customClass='customWidth'>
+			<el-input :placeholder="$t('project.copyInv')" v-model="inviteLink" class="input-with-select">
+                <el-button slot="append" v-clipboard:copy="inviteLink" v-clipboard:success="copyLink" v-clipboard:error="onError" type="primary" icon="el-icon-share">{{$t('project.copy')}}</el-button>
             </el-input>
 		</el-dialog>
 	</section>
@@ -139,23 +139,42 @@
 
 	export default {
 		data() {
-            var checkPhone = (rule, value, callback) => {
+            const checkPhone = (rule, value, callback) => {
                 if (!value) {
-                    return callback(new Error('请输入联系方式'));
+                    return callback(new Error(this.$t('project.inputMobile')));
                 } else {
                     const reg = /^1[0-9]\d{9}$/
                     if (reg.test(value)) {
                         callback();
                     } else {
-                        return callback(new Error('请输入正确的联系方式'));
+                        return callback(new Error(this.$t('project.inputTrueMobile')));
                     }
                 }
+            };
+            const msg = (rule, value, callback) => {
+                if (!value) {
+                    switch(rule.field) {
+                        case "username":
+                            return callback(new Error(this.$t('project.inputName')));
+                            break;
+                        case "projectIds":
+                            return callback(new Error(this.$t('project.inputPartake')));
+                            break;
+                        case "companyId":
+                            return callback(new Error(this.$t('project.inputCompany')));
+                            break;
+                        default:
+                            callback();
+                    } 
+                } else {
+                    callback();
+                }
             };
 			return {
 				filters: {
                     keyName: '',
                     roleName: '',
-                    flag: '姓名',
+                    flag: this.$t('project.name'),
                     companyId: ''
                 },
                 
@@ -174,19 +193,16 @@
 
                 formRules: {
                     username: [
-						{ required: true, message: '请输入姓名', trigger: 'blur' }
+						{ required: true, validator: msg, trigger: 'blur' }
                     ],
                     account: [
                         { required: true, validator: checkPhone, trigger: 'blur'}
                     ],
-                    teamName: [
-						{ required: true, message: '请选择人员类型', trigger: ["blur",'change'] }
-                    ],
                     projectIds: [
-						{ required: true, message: '请选择参与项目', trigger: ["blur",'change'] }
+						{ required: true, validator: msg, trigger: ["blur",'change'] }
 					],
                     companyId: [
-						{ required: true, message: '请选择所属公司', trigger: ["blur",'change'] }
+						{ required: true, validator: msg, trigger: ["blur",'change'] }
 					]
                 },
 
@@ -307,7 +323,7 @@
                     currentPage: this.page,
                     pageSize: this.size,
                     companyId: this.filters.companyId==''?-1:this.filters.companyId,
-                    flag: this.filters.flag=='姓名'?0:this.filters.flag
+                    flag: this.filters.flag==this.$t('project.name')?0:this.filters.flag
                 }, res => {
                     this.listLoading = false;
                     if (res.code == "ok") {
@@ -353,7 +369,7 @@
                             if (res.code == "ok") {
                                 this.addFormVisible = false;
                                 this.$message({
-                                    message: '创建成功',
+                                    message: this.$t('prompt.success2'),
                                     type: 'success'
                                 });
                                 this.getUsers();
@@ -377,15 +393,17 @@
 
 			//删除
 			handleDel(index, row) {
-                this.$confirm('确认删除该人员吗?', '提示', {
-					type: 'warning'
+                this.$confirm(this.$t('project.delPeo'), this.$t('el.messagebox.title'), {
+					confirmButtonText: this.$t('el.messagebox.confirm'),
+                    cancelButtonText: this.$t('el.messagebox.cancel'),
+                    type: 'warning'
 				}).then(() => {
                     this.http.post(this.port.project.delUser, {
                         id: row.id
                     }, res => {
                         if (res.code == "ok") {
                             this.$message({
-                                message: '删除成功',
+                                message: this.$t("prompt.success3"),
                                 type: 'success'
                             });
                             this.getUsers();
@@ -434,7 +452,7 @@
                             if (res.code == "ok") {
                                 this.editFormVisible = false;
                                 this.$message({
-                                    message: '修改成功',
+                                    message: this.$t("prompt.success"),
                                     type: 'success'
                                 });
                                 this.getUsers();
@@ -510,7 +528,7 @@
             copyLink() {
                 //this.inviteVisible = false;
                 this.$message({
-                    message: "复制成功!",
+                    message: this.$t('prompt.success6'),
                     type: 'success'
                 });
             },
@@ -518,7 +536,7 @@
             onError(e) {
                 //this.inviteVisible = false;
                 this.$message({
-                    message: "复制失败!",
+                    message: this.$t('prompt.fail'),
                     type: 'error'
                 });
             }

+ 1 - 1
ys_vue/src/views/detection/detection.vue

@@ -5,7 +5,7 @@
       <el-form :inline="true" :model="filters">
         <el-col :span="2">
           <el-form-item>
-            <el-select v-model="filters.value" placeholder="请选择">
+            <el-select v-model="filters.value" placeholder="请选择查询条件">
               <el-option label="编号" value="0"></el-option>
               <el-option label="名称" value="1"></el-option>
             </el-select>

+ 1 - 1
ys_vue/src/views/mold/moldDetail.vue

@@ -633,7 +633,7 @@
                     name: "",
                     life: ""
                 },
-                maintainCount: [5000,10000],
+                maintainCount: [5000,10000,15000,20000,25000],
                 formRules: {
                     modelName: [
                         { required: true, message: "请输入模具名称", trigger: "blur" }

+ 1 - 1
ys_vue/src/views/project/competence.vue

@@ -21,7 +21,7 @@
 		</el-col>
 
 		<!--列表-->
-		<el-table :data="list" highlight-current-row v-loading="listLoading" style="width: 100%;">
+		<el-table :data="list" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
 			<el-table-column type="index" width="60">
 			</el-table-column>
 			<el-table-column prop="username" label="姓名" width="150" sortable>

+ 2 - 2
ys_vue/src/views/project/staff.vue

@@ -15,12 +15,12 @@
                     <el-form-item>
                         <el-select v-model="filters.flag" placeholder="请选择查询条件">
                             <el-option label="姓名" value="0"></el-option>
-                            <el-option label="用户名" value="1"></el-option>
+                            <el-option label="手机号" value="1"></el-option>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-form-item>
-                    <el-input v-model="filters.keyName" clearable placeholder="请输入姓名或号进行搜索" style="width:250px;"></el-input>
+                    <el-input v-model="filters.keyName" clearable placeholder="请输入姓名或手机号进行搜索" style="width:250px;"></el-input>
                 </el-form-item>
 				<el-form-item>
 					<el-button type="primary" @click="getUsers">查询</el-button>