Browse Source

fix(i18n): 更新多个组件的国际化文本和优化业务逻辑

- 将供应商、零部件相关附件上传界面的按钮、标签、提示信息从英文翻译为中文
- 优化性能评估模板编号编辑权限控制,仅在新增或状态为未开始时允许修改
- 修复清除负责人时只清空账号未清空姓名导致数据显示残留的问题
- 隐藏零件列表中的转正和审批放行功能入口以符合当前业务流程
- 更新采购头部列表和供应商历史回复对话框标题的本地化文本
master
qiankanghui 6 hours ago
parent
commit
c640b6f310
  1. 44
      src/views/modules/srmPart/com_part_Attachments.vue
  2. 6
      src/views/modules/srmPart/com_part_Suppliers.vue
  3. 10
      src/views/modules/srmPart/partInfoList.vue
  4. 36
      src/views/modules/supplier/com_inquiry_Attachments.vue
  5. 24
      src/views/modules/supplier/purHeaderList.vue
  6. 2
      src/views/modules/supplier/supPurReplyHistList.vue
  7. 21
      src/views/modules/supplierPerformance/myPerformanceEvaluateRequest.vue

44
src/views/modules/srmPart/com_part_Attachments.vue

@ -4,7 +4,7 @@
<el-form label-position="top" style="margin-top: -5px;"> <el-form label-position="top" style="margin-top: -5px;">
<el-row style="margin-top: 10px"> <el-row style="margin-top: 10px">
<el-col :span="4"> <el-col :span="4">
<el-button class="customer-bun-min" type="primary" @click="handleUpload">Upload</el-button>
<el-button class="customer-bun-min" type="primary" @click="handleUpload">上传</el-button>
</el-col> </el-col>
</el-row> </el-row>
@ -19,39 +19,39 @@
header-align="center" header-align="center"
align="left" align="left"
min-width="200" min-width="200"
label="File">
label="文件">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="createdBy" prop="createdBy"
header-align="center" header-align="center"
align="center" align="center"
min-width="100" min-width="100"
label="Upload By">
label="上传人">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="createDate" prop="createDate"
header-align="center" header-align="center"
align="center" align="center"
min-width="100" min-width="100"
label="Upload Time">
label="上传时间">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
header-align="center" header-align="center"
align="center" align="center"
width="100" width="100"
fixed="right" fixed="right"
label="Actions">
label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<a type="text" size="small" v-if="scope.row.id" @click="handleDownload(scope.row)">View |</a>
<a type="text" size="small" v-if="scope.row.id" @click="deleteFileReal(scope.row)"> delete</a>
<a type="text" size="small" v-else @click="deleteFile(scope.$index)"> delete</a>
<a type="text" size="small" v-if="scope.row.id" @click="handleDownload(scope.row)">查看 |</a>
<a type="text" size="small" v-if="scope.row.id" @click="deleteFileReal(scope.row)"> 删除</a>
<a type="text" size="small" v-else @click="deleteFile(scope.$index)"> 删除</a>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-form> </el-form>
<!-- File Upload Dialog --> <!-- File Upload Dialog -->
<el-dialog title="UpLoad" :visible.sync="ossVisible" v-drag width="400px" append-to-body :close-on-click-modal="false">
<el-dialog title="文件上传" :visible.sync="ossVisible" v-drag width="400px" append-to-body :close-on-click-modal="false">
<el-form ref="form" class="rq" label-width="80px" label-position="top"> <el-form ref="form" class="rq" label-width="80px" label-position="top">
<el-row :gutter="10"> <el-row :gutter="10">
<slot></slot> <slot></slot>
@ -64,12 +64,12 @@
multiple multiple
:auto-upload="false"> :auto-upload="false">
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text">Drag files here, or<em> click to upload</em></div>
<div class="el-upload__text">将文件拖到这里<em>点击上传</em></div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="Remark" class="auto">
<el-form-item label="备注" class="auto">
<el-input type="textarea" v-model="ossForm.remark" resize="none" :autosize="{minRows: 3, maxRows: 3}"></el-input> <el-input type="textarea" v-model="ossForm.remark" resize="none" :autosize="{minRows: 3, maxRows: 3}"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -77,8 +77,8 @@
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<!-- <el-button type="primary" :loading="uploadLoading" @click="handleUploadFiles">Confirm</el-button> --> <!-- <el-button type="primary" :loading="uploadLoading" @click="handleUploadFiles">Confirm</el-button> -->
<el-button type="primary" :loading="uploadLoading" @click="submitData">Confirm</el-button>
<el-button @click="ossVisible = false">Close</el-button>
<el-button type="primary" :loading="uploadLoading" @click="submitData">确认</el-button>
<el-button @click="ossVisible = false">关闭</el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@ -201,7 +201,7 @@ export default {
// Stage files on dialog confirm // Stage files on dialog confirm
handleUploadFiles() { handleUploadFiles() {
if (this.fileList2.length === 0) { if (this.fileList2.length === 0) {
this.$message.error('Please select file(s)');
this.$message.error('请选择文件');
return; return;
} }
this.stagedFileRemark = this.ossForm.remark || ''; this.stagedFileRemark = this.ossForm.remark || '';
@ -219,7 +219,7 @@ export default {
this.fileList2 = []; this.fileList2 = [];
this.ossForm.remark = ''; this.ossForm.remark = '';
this.ossVisible = false; this.ossVisible = false;
this.$message.success('Files staged');
this.$message.success('文件已暂存');
}, },
@ -283,7 +283,7 @@ export default {
}); });
} else { } else {
this.$message({ this.$message({
message: 'Unsupported file type',
message: '不支持的文件类型',
type: 'warning' type: 'warning'
}); });
} }
@ -367,21 +367,21 @@ submitData() {
deleteFileReal(row) { deleteFileReal(row) {
if (!row || !row.id) return; if (!row || !row.id) return;
this.$confirm('Are you sure you want to delete this file?', 'Delete Confirmation', {
confirmButtonText: 'OK',
cancelButtonText: 'Cancel',
this.$confirm('确定要删除该文件吗?', '删除确认', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
removeOssFile([row.id]).then(({ data }) => { removeOssFile([row.id]).then(({ data }) => {
if (data && data.code === 0) { if (data && data.code === 0) {
const idx = this.fileList.findIndex(f => f.id === row.id); const idx = this.fileList.findIndex(f => f.id === row.id);
if (idx !== -1) this.fileList.splice(idx, 1); if (idx !== -1) this.fileList.splice(idx, 1);
this.$message.success(data.msg || 'File deleted');
this.$message.success(data.msg || '文件已删除');
} else { } else {
this.$message.warning(data.msg || 'Delete failed');
this.$message.warning(data.msg || '删除失败');
} }
}).catch(err => { }).catch(err => {
this.$message.error('Delete failed:' + (err.message || err));
this.$message.error('删除失败:' + (err.message || err));
}); });
}).catch(() => { }); }).catch(() => { });
}, },

6
src/views/modules/srmPart/com_part_Suppliers.vue

@ -39,11 +39,11 @@
align="center" align="center"
width="180" width="180"
fixed="right" fixed="right"
label="Actions">
label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<a type="text" size="small" v-if="scope.row.needRenew=='Y'" @click="renewModew(scope.row)">Renew |</a> <a type="text" size="small" v-if="scope.row.needRenew=='Y'" @click="renewModew(scope.row)">Renew |</a>
<a type="text" size="small" @click="editModel(scope.row)">Edit |</a>
<a type="text" size="small" @click="deleteData(scope.row)"> Delete</a>
<a type="text" size="small" @click="editModel(scope.row)">编辑 |</a>
<a type="text" size="small" @click="deleteData(scope.row)"> 删除</a>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

10
src/views/modules/srmPart/partInfoList.vue

@ -88,11 +88,11 @@
header-align="center" header-align="center"
align="center" align="center"
width="200" width="200"
label="Action">
label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-link style="cursor: pointer" v-if="scope.row.flowStatus === 'COMPLETED' || scope.row.flowStatus === 'TERMINATED'" @click="handleRestart(scope.row)">重新审批 |</el-link> <!-- <el-link style="cursor: pointer" v-if="scope.row.flowStatus === 'COMPLETED' || scope.row.flowStatus === 'TERMINATED'" @click="handleRestart(scope.row)">重新审批 |</el-link>
<el-link style="cursor: pointer" v-if="scope.row.flowStatus === 'RUNNING'" @click="openApproveDialog(scope.row)">审批 |</el-link> --> <el-link style="cursor: pointer" v-if="scope.row.flowStatus === 'RUNNING'" @click="openApproveDialog(scope.row)">审批 |</el-link> -->
<el-link style="cursor: pointer" v-if="scope.row.partStage === 'Created'" @click="startFormalApprove(scope.row)">转正 |</el-link>
<!-- <el-link style="cursor: pointer" v-if="scope.row.partStage === 'Created'" @click="startFormalApprove(scope.row)">转正 |</el-link>-->
<el-link style="cursor: pointer" @click="openChangeDefaultSupplier(scope.row)">变更默认供应商 |</el-link> <el-link style="cursor: pointer" @click="openChangeDefaultSupplier(scope.row)">变更默认供应商 |</el-link>
<el-link style="cursor: pointer" @click="editPart(scope.row)">编辑 |</el-link> <el-link style="cursor: pointer" @click="editPart(scope.row)">编辑 |</el-link>
<el-link style="cursor: pointer" @click="deletePart(scope.row)">删除</el-link> <el-link style="cursor: pointer" @click="deletePart(scope.row)">删除</el-link>
@ -120,9 +120,9 @@
<el-tab-pane label="关联供应商" name="suppliers" style=""> <el-tab-pane label="关联供应商" name="suppliers" style="">
<suppliers ref="suppliers"></suppliers> <suppliers ref="suppliers"></suppliers>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="审批与放行" name="approval" style="">
<approval ref="approval"></approval>
</el-tab-pane>
<!-- <el-tab-pane label="审批与放行" name="approval" style="">-->
<!-- <approval ref="approval"></approval>-->
<!-- </el-tab-pane>-->
<el-tab-pane label="附件" name="attachments" style=""> <el-tab-pane label="附件" name="attachments" style="">
<attachments ref="attachments"></attachments> <attachments ref="attachments"></attachments>
</el-tab-pane> </el-tab-pane>

36
src/views/modules/supplier/com_inquiry_Attachments.vue

@ -19,28 +19,28 @@
header-align="center" header-align="center"
align="left" align="left"
min-width="200" min-width="200"
label="File">
label="文件">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="createdBy" prop="createdBy"
header-align="center" header-align="center"
align="center" align="center"
min-width="100" min-width="100"
label="Upload By">
label="上传人">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="createDate" prop="createDate"
header-align="center" header-align="center"
align="center" align="center"
min-width="100" min-width="100"
label="Upload Time">
label="上传时间">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
header-align="center" header-align="center"
align="center" align="center"
width="100" width="100"
fixed="right" fixed="right"
label="Actions">
label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <a type="text" size="small" v-if="scope.row.id" @click="handleDownload(scope.row)">View |</a> <!-- <a type="text" size="small" v-if="scope.row.id" @click="handleDownload(scope.row)">View |</a>
<a type="text" size="small" v-if="scope.row.id" @click="deleteFileReal(scope.row)"> delete</a> --> <a type="text" size="small" v-if="scope.row.id" @click="deleteFileReal(scope.row)"> delete</a> -->
@ -50,7 +50,7 @@
</el-form> </el-form>
<!-- File Upload Dialog --> <!-- File Upload Dialog -->
<el-dialog title="UpLoad" :visible.sync="ossVisible" v-drag width="400px" append-to-body :close-on-click-modal="false">
<el-dialog title="文件上传" :visible.sync="ossVisible" v-drag width="400px" append-to-body :close-on-click-modal="false">
<el-form ref="form" class="rq" label-width="80px" label-position="top"> <el-form ref="form" class="rq" label-width="80px" label-position="top">
<el-row :gutter="10"> <el-row :gutter="10">
<slot></slot> <slot></slot>
@ -63,12 +63,12 @@
multiple multiple
:auto-upload="false"> :auto-upload="false">
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text">Drag files here, or<em> click to upload</em></div>
<div class="el-upload__text">将文件拖到这里<em>点击上传</em></div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="Remark" class="auto">
<el-form-item label="备注" class="auto">
<el-input type="textarea" v-model="ossForm.remark" resize="none" :autosize="{minRows: 3, maxRows: 3}"></el-input> <el-input type="textarea" v-model="ossForm.remark" resize="none" :autosize="{minRows: 3, maxRows: 3}"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -76,8 +76,8 @@
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<!-- <el-button type="primary" :loading="uploadLoading" @click="handleUploadFiles">Confirm</el-button> --> <!-- <el-button type="primary" :loading="uploadLoading" @click="handleUploadFiles">Confirm</el-button> -->
<el-button type="primary" :loading="uploadLoading" @click="submitData">Confirm</el-button>
<el-button @click="ossVisible = false">Close</el-button>
<el-button type="primary" :loading="uploadLoading" @click="submitData">确认</el-button>
<el-button @click="ossVisible = false">关闭</el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@ -180,7 +180,7 @@ export default {
// Stage files on dialog confirm // Stage files on dialog confirm
handleUploadFiles() { handleUploadFiles() {
if (this.fileList2.length === 0) { if (this.fileList2.length === 0) {
this.$message.error('Please select file(s)');
this.$message.error('请选择文件');
return; return;
} }
this.stagedFileRemark = this.ossForm.remark || ''; this.stagedFileRemark = this.ossForm.remark || '';
@ -198,7 +198,7 @@ export default {
this.fileList2 = []; this.fileList2 = [];
this.ossForm.remark = ''; this.ossForm.remark = '';
this.ossVisible = false; this.ossVisible = false;
this.$message.success('Files staged');
this.$message.success('文件已暂存');
}, },
@ -262,7 +262,7 @@ export default {
}); });
} else { } else {
this.$message({ this.$message({
message: 'Unsupported file type',
message: '不支持的文件类型',
type: 'warning' type: 'warning'
}); });
} }
@ -346,21 +346,21 @@ submitData() {
deleteFileReal(row) { deleteFileReal(row) {
if (!row || !row.id) return; if (!row || !row.id) return;
this.$confirm('Are you sure you want to delete this file?', 'Delete Confirmation', {
confirmButtonText: 'OK',
cancelButtonText: 'Cancel',
this.$confirm('确定要删除该文件吗?', '删除确认', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
removeOss([row.id]).then(({ data }) => { removeOss([row.id]).then(({ data }) => {
if (data && data.code === 0) { if (data && data.code === 0) {
const idx = this.fileList.findIndex(f => f.id === row.id); const idx = this.fileList.findIndex(f => f.id === row.id);
if (idx !== -1) this.fileList.splice(idx, 1); if (idx !== -1) this.fileList.splice(idx, 1);
this.$message.success(data.msg || 'File deleted');
this.$message.success(data.msg || '文件已删除');
} else { } else {
this.$message.warning(data.msg || 'Delete failed');
this.$message.warning(data.msg || '删除失败');
} }
}).catch(err => { }).catch(err => {
this.$message.error('Delete failed:' + (err.message || err));
this.$message.error('删除失败:' + (err.message || err));
}); });
}).catch(() => { }); }).catch(() => { });
}, },

24
src/views/modules/supplier/purHeaderList.vue

@ -354,7 +354,7 @@
<el-form label-position="top" style="margin-top: -5px;"> <el-form label-position="top" style="margin-top: -5px;">
<el-row style="margin-top: 10px"> <el-row style="margin-top: 10px">
<el-col :span="4"> <el-col :span="4">
<el-button class="customer-bun-min" type="primary" @click="handleUpload">Upload</el-button>
<el-button class="customer-bun-min" type="primary" @click="handleUpload">上传文件</el-button>
</el-col> </el-col>
</el-row> </el-row>
@ -369,32 +369,32 @@
header-align="center" header-align="center"
align="left" align="left"
min-width="200" min-width="200"
label="File">
label="文件">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="createdBy" prop="createdBy"
header-align="center" header-align="center"
align="center" align="center"
min-width="100" min-width="100"
label="Upload By">
label="上传人">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="createDate" prop="createDate"
header-align="center" header-align="center"
align="center" align="center"
min-width="100" min-width="100"
label="Upload Time">
label="上传时间">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
header-align="center" header-align="center"
align="center" align="center"
width="100" width="100"
fixed="right" fixed="right"
label="Actions">
label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<a type="text" size="small" v-if="scope.row.id" @click="handleDownload(scope.row)">View |</a>
<a type="text" size="small" v-if="scope.row.id" @click="deleteFileReal(scope.row)"> delete</a>
<a type="text" size="small" v-else @click="deleteFile(scope.$index)"> delete</a>
<a type="text" size="small" v-if="scope.row.id" @click="handleDownload(scope.row)">查看 |</a>
<a type="text" size="small" v-if="scope.row.id" @click="deleteFileReal(scope.row)"> 删除</a>
<a type="text" size="small" v-else @click="deleteFile(scope.$index)"> 删除</a>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -403,7 +403,7 @@
<!-- File Upload Dialog --> <!-- File Upload Dialog -->
<el-dialog <el-dialog
title="UpLoad"
title="文件上传"
:visible.sync="ossVisible" :visible.sync="ossVisible"
v-drag v-drag
width="400px" width="400px"
@ -425,7 +425,7 @@
multiple multiple
:auto-upload="false"> :auto-upload="false">
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text">Drag files here, or<em> click to upload</em></div>
<div class="el-upload__text">将文件拖到这里<em>点击上传</em></div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -437,8 +437,8 @@
</el-row> </el-row>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button type="primary" :loading="uploadLoading" @click="submitData">Confirm</el-button>
<el-button @click="ossVisible = false">Close</el-button>
<el-button type="primary" :loading="uploadLoading" @click="submitData">确认</el-button>
<el-button @click="ossVisible = false">关闭</el-button>
</span> </span>
</el-dialog> </el-dialog>

2
src/views/modules/supplier/supPurReplyHistList.vue

@ -952,7 +952,7 @@ export default {
}, },
openDialog(row) { openDialog(row) {
if (row) { if (row) {
this.dialogTitle = '编辑报价'
this.dialogTitle = '审批报价'
this.editMode = true this.editMode = true
this.form = { ...row } this.form = { ...row }
} else { } else {

21
src/views/modules/supplierPerformance/myPerformanceEvaluateRequest.vue

@ -137,9 +137,9 @@
:close-on-click-modal="false" v-drag> :close-on-click-modal="false" v-drag>
<el-form :inline="true" label-position="top" size="mini" class="create-top-form"> <el-form :inline="true" label-position="top" size="mini" class="create-top-form">
<el-form-item :required="true"> <el-form-item :required="true">
<span slot="label" @click="getBaseList(2014)"><a href="#">模板编号</a></span>
<!-- 允许编辑模式下修改模板号: 去掉 :disabled="isEdit" -->
<el-input v-model="createForm.templateNo" style="width:150px" @blur="autoFetchTemplateInfo" />
<span slot="label" @click="templateNoEditable && getBaseList(2014)"><a :href="templateNoEditable ? '#' : 'javascript:void(0)'" :style="templateNoEditable ? '' : 'color:#c0c4cc;cursor:not-allowed'">模板编号</a></span>
<!-- 编辑模式下仅状态为未开始可修改模板号 -->
<el-input v-model="createForm.templateNo" style="width:150px" :disabled="!templateNoEditable" @blur="autoFetchTemplateInfo" />
</el-form-item> </el-form-item>
<el-form-item label="模板描述"> <el-form-item label="模板描述">
<el-input v-model="createForm.templateDesc" style="width:260px" disabled /> <el-input v-model="createForm.templateDesc" style="width:260px" disabled />
@ -361,7 +361,12 @@ export default {
}, },
computed: { computed: {
requestTableHeight() { return this.height - 360 < 260 ? 260 : this.height - 360 }, requestTableHeight() { return this.height - 360 < 260 ? 260 : this.height - 360 },
indicatorTableHeight() { return 300 }
indicatorTableHeight() { return 300 },
//
templateNoEditable() {
if (!this.isEdit) return true
return (this.currentRequest.status || '') === '未开始'
}
}, },
mounted() { mounted() {
this.calcHeight(); this.calcHeight();
@ -478,7 +483,7 @@ export default {
// score // score
this.loadIndicators() this.loadIndicators()
}, },
reloadEditOwners() { if (!this.isEdit || !this.createForm.id) return; this.openEditDialog({ templateNo:this.createForm.templateNo, wantedCompleteDate:this.createForm.wantedCompleteDate, id:this.createForm.id, requestNo:this.createForm.requestNo }) },
reloadEditOwners() { if (!this.isEdit || !this.createForm.id) return; this.openEditDialog({ templateNo:this.createForm.templateNo, wantedCompleteDate:this.createForm.wantedCompleteDate, id:this.createForm.id, requestNo:this.createForm.requestNo, status:this.currentRequest.status }) },
removeRequest(row) { removeRequest(row) {
const site = this.$store.state.user.site const site = this.$store.state.user.site
// (score>0) // (score>0)
@ -632,7 +637,11 @@ export default {
this.$set(this.currentDeptRow, 'ownerDisplay', row.userDisplay || row.user_display || '') this.$set(this.currentDeptRow, 'ownerDisplay', row.userDisplay || row.user_display || '')
this.ownerDialogVisible = false this.ownerDialogVisible = false
}, },
clearOwner(row) { row.owner = '' },
clearOwner(row) {
//
this.$set(row, 'owner', '')
this.$set(row, 'ownerDisplay', '')
},
validateCreate() { validateCreate() {
if (this.createForm.templateNo) this.createForm.templateNo = this.createForm.templateNo.trim() if (this.createForm.templateNo) this.createForm.templateNo = this.createForm.templateNo.trim()
if (!this.createForm.templateNo) { this.$message.warning('Template No 不能为空'); return false } if (!this.createForm.templateNo) { this.$message.warning('Template No 不能为空'); return false }

Loading…
Cancel
Save