Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qr-consistency-vue3
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘怀志
qr-consistency-vue3
Commits
1efb1e24
Commit
1efb1e24
authored
3 weeks ago
by
lwy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(CQC控制计划管理):查看文件按钮操作,返回按钮操作,查看文件页
parent
ed300dff
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
286 additions
and
28 deletions
+286
-28
cn.json
...lan/CQCControlPlan/CQCControlPlanManagement/index/cn.json
+1
-1
history.vue
...lPlan/CQCControlPlan/CQCControlPlanManagement/history.vue
+137
-12
index.vue
...rolPlan/CQCControlPlan/CQCControlPlanManagement/index.vue
+19
-14
view.vue
...trolPlan/CQCControlPlan/CQCControlPlanManagement/view.vue
+10
-1
viewFile.vue
...Plan/CQCControlPlan/CQCControlPlanManagement/viewFile.vue
+119
-0
No files found.
src/locales/controlPlan/CQCControlPlan/CQCControlPlanManagement/index/cn.json
View file @
1efb1e24
{
"search"
:
"
搜索
"
,
"search"
:
"
查询
"
,
"reset"
:
"重置"
,
"pleaseChoose"
:
"请选择"
,
"pleaseEnter"
:
"请输入"
,
...
...
This diff is collapsed.
Click to expand it.
src/views/controlPlan/CQCControlPlan/CQCControlPlanManagement/history.vue
View file @
1efb1e24
...
...
@@ -14,7 +14,7 @@
</
template
>
<el-select
v-model=
"queryParams.businessUnitId"
:placeholder=
"`${cn.pleaseChoose}
/
${en.pleaseChoose}`"
:placeholder=
"`${cn.pleaseChoose}${en.pleaseChoose}`"
clearable
style=
"width: 200px"
>
...
...
@@ -38,7 +38,7 @@
</
template
>
<el-select
v-model=
"queryParams.vehicleModelCode"
:placeholder=
"`${cn.pleaseChooseOrEnter}
/
${en.pleaseChooseOrEnter}`"
:placeholder=
"`${cn.pleaseChooseOrEnter}${en.pleaseChooseOrEnter}`"
clearable
filterable
style=
"width: 200px"
...
...
@@ -63,7 +63,7 @@
</
template
>
<el-select
v-model=
"queryParams.vehicleSeries"
:placeholder=
"`${cn.pleaseChoose}
/
${en.pleaseChoose}`"
:placeholder=
"`${cn.pleaseChoose}${en.pleaseChoose}`"
clearable
style=
"width: 200px"
>
...
...
@@ -90,7 +90,7 @@
</
template
>
<el-input
v-model=
"queryParams.productionAddress"
:placeholder=
"`${cn.pleaseEnter}
/
${en.pleaseEnter}`"
:placeholder=
"`${cn.pleaseEnter}${en.pleaseEnter}`"
clearable
style=
"width: 200px"
/>
...
...
@@ -108,7 +108,7 @@
</
template
>
<el-input
v-model=
"queryParams.versionNumber"
:placeholder=
"`${cn.pleaseEnter}
/
${en.pleaseEnter}`"
:placeholder=
"`${cn.pleaseEnter}${en.pleaseEnter}`"
clearable
style=
"width: 200px"
/>
...
...
@@ -126,7 +126,7 @@
</
template
>
<el-input
v-model=
"queryParams.createBy"
:placeholder=
"`${cn.pleaseEnter}
/
${en.pleaseEnter}`"
:placeholder=
"`${cn.pleaseEnter}${en.pleaseEnter}`"
clearable
style=
"width: 200px"
/>
...
...
@@ -144,7 +144,7 @@
</
template
>
<el-input
v-model=
"queryParams.productionFactory"
:placeholder=
"`${cn.pleaseEnter}
/
${en.pleaseEnter}`"
:placeholder=
"`${cn.pleaseEnter}${en.pleaseEnter}`"
clearable
style=
"width: 200px"
/>
...
...
@@ -164,7 +164,7 @@
</
template
>
<el-select
v-model=
"queryParams.controlPlanStatus"
:placeholder=
"`${cn.pleaseChoose}
/
${en.pleaseChoose}`"
:placeholder=
"`${cn.pleaseChoose}${en.pleaseChoose}`"
clearable
style=
"width: 200px"
>
...
...
@@ -180,8 +180,8 @@
<!-- 重置搜索按钮 -->
<el-col
:span=
"18"
>
<div
class=
"button-container"
>
<el-button
style=
"width: 110px"
class=
"btn-A"
@
click=
"handleQuery"
>
{{ cn.search }}
/
{{ en.search }}
</el-button>
<el-button
style=
"width: 110px"
class=
"btn-B"
@
click=
"resetQuery"
>
{{ cn.reset }}
/
{{ en.reset }}
</el-button>
<el-button
style=
"width: 110px"
class=
"btn-A"
@
click=
"handleQuery"
>
{{ cn.search }}{{ en.search }}
</el-button>
<el-button
style=
"width: 110px"
class=
"btn-B"
@
click=
"resetQuery"
>
{{ cn.reset }}{{ en.reset }}
</el-button>
</div>
</el-col>
</el-row>
...
...
@@ -300,6 +300,15 @@
<div>
{{
en
.
finalFileAddress
}}
</div>
</div>
</
template
>
<
template
#
default=
"scope"
>
<el-button
style=
"textDecoration: underline"
v-if=
"scope.row.finalFileAddress && scope.row.finalFileAddress.trim() !== ''"
link
type=
"primary"
@
click=
"handleViewFile(scope.row)"
>
查看文件
</el-button>
<span
v-else
>
--
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"控制计划状态"
fixed=
"right"
width=
"150"
align=
"center"
prop=
"controlPlanStatus"
>
<
template
#
header
>
...
...
@@ -410,11 +419,107 @@ const { queryParams, form, rules } = toRefs(data);
/** 查询CQC控制计划列表 */
function
getList
()
{
loading
.
value
=
true
;
historyListPlan
(
queryParams
.
value
).
then
(
response
=>
{
// 模拟数据 - 历史记录列表
const
mockData
=
{
rows
:
[
{
id
:
1
,
controlPlanNumber
:
'CP-2023-0001'
,
brand
:
'乘用车事业部'
,
vehicleTypeCode
:
'A001'
,
vehicleSeries
:
'sedan'
,
productionAddress
:
'上海市嘉定区安亭镇'
,
versionNumber
:
'V1.0'
,
deadline
:
'2023-12-31'
,
createBy
:
'张三'
,
createTime
:
'2023-01-15 09:30:00'
,
updateTime
:
'2023-01-15 10:45:00'
,
productionStatus
:
'量产'
,
productionFactory
:
'上海工厂'
,
finalFileAddress
:
'CP-2023-0001_V1.0.pdf'
,
controlPlanStatus
:
'plan_draft_final_confirmed'
},
{
id
:
2
,
controlPlanNumber
:
'CP-2023-0002'
,
brand
:
'新能源事业部'
,
vehicleTypeCode
:
'E005'
,
vehicleSeries
:
'new_energy'
,
productionAddress
:
'江苏省南京市江宁区'
,
versionNumber
:
'V2.1'
,
deadline
:
'2024-06-30'
,
createBy
:
'李四'
,
createTime
:
'2023-03-20 14:15:00'
,
updateTime
:
'2023-05-10 16:20:00'
,
productionStatus
:
'试生产'
,
productionFactory
:
'南京工厂'
,
finalFileAddress
:
'CP-2023-0002_V2.1.pdf'
,
controlPlanStatus
:
'plan_draft_final_confirmed'
},
{
id
:
3
,
controlPlanNumber
:
'CP-2023-0003'
,
brand
:
'商用车事业部'
,
vehicleTypeCode
:
'C003'
,
vehicleSeries
:
'mpv'
,
productionAddress
:
'山东省济南市高新区'
,
versionNumber
:
'V1.2'
,
deadline
:
'2023-11-15'
,
createBy
:
'王五'
,
createTime
:
'2023-02-08 11:45:00'
,
updateTime
:
'2023-09-25 15:30:00'
,
productionStatus
:
'量产'
,
productionFactory
:
'济南工厂'
,
finalFileAddress
:
'CP-2023-0003_V1.2.pdf'
,
controlPlanStatus
:
'plan_draft_final_confirmed'
},
{
id
:
4
,
controlPlanNumber
:
'CP-2023-0004'
,
brand
:
'乘用车事业部'
,
vehicleTypeCode
:
'B002'
,
vehicleSeries
:
'suv'
,
productionAddress
:
'广东省广州市黄埔区'
,
versionNumber
:
'V3.0'
,
deadline
:
'2024-03-31'
,
createBy
:
'赵六'
,
createTime
:
'2023-04-30 16:20:00'
,
updateTime
:
'2023-10-15 14:00:00'
,
productionStatus
:
'量产'
,
productionFactory
:
'广州工厂'
,
finalFileAddress
:
'CP-2023-0004_V3.0.pdf'
,
controlPlanStatus
:
'plan_draft_final_confirmed'
},
{
id
:
5
,
controlPlanNumber
:
'CP-2023-0005'
,
brand
:
'特种车事业部'
,
vehicleTypeCode
:
'G007'
,
vehicleSeries
:
'sports'
,
productionAddress
:
'北京市顺义区'
,
versionNumber
:
'V1.1'
,
deadline
:
'2023-12-10'
,
createBy
:
'钱七'
,
createTime
:
'2023-01-28 10:10:00'
,
updateTime
:
'2023-07-05 11:50:00'
,
productionStatus
:
'试生产'
,
productionFactory
:
'北京工厂'
,
finalFileAddress
:
'CP-2023-0005_V1.1.pdf'
,
controlPlanStatus
:
'plan_draft_final_confirmed'
}
],
total
:
5
}
// 使用假数据填充表格
historyList
.
value
=
mockData
.
rows
;
total
.
value
=
mockData
.
total
;
loading
.
value
=
false
;
/* historyListPlan(queryParams.value).then(response => {
historyList.value = response.rows;
total.value = response.total;
loading.value = false;
});
});
*/
}
// 取消按钮
...
...
@@ -463,6 +568,26 @@ function resetQuery() {
handleQuery
();
}
/** 查看文件按钮操作 */
function
handleViewFile
()
{
proxy
.
$router
.
push
({
path
:
'/control/CQCControlPlan/CQCViewFile'
,
query
:
{
source
:
'history'
}
});
}
/** 查看按钮操作 */
function
handleView
(
row
)
{
proxy
.
$router
.
push
({
path
:
'/control/CQCControlPlan/CQCControlPlanView'
,
query
:
{
id
:
row
.
id
,
source
:
'history'
}});
}
/*查询所有事业部名称*/
function
getAllBusinessUnit
()
{
getAllBusinessUnitName
().
then
(
res
=>
{
...
...
This diff is collapsed.
Click to expand it.
src/views/controlPlan/CQCControlPlan/CQCControlPlanManagement/index.vue
View file @
1efb1e24
...
...
@@ -14,7 +14,7 @@
</
template
>
<el-input
v-model=
"queryParams.controlPlanNumber"
:placeholder=
"`${cn.pleaseEnter}
/
${en.pleaseEnter}`"
:placeholder=
"`${cn.pleaseEnter}${en.pleaseEnter}`"
clearable
style=
"width: 200px"
/>
...
...
@@ -32,7 +32,7 @@
</
template
>
<el-select
v-model=
"queryParams.businessUnitId"
:placeholder=
"`${cn.pleaseChoose}
/
${en.pleaseChoose}`"
:placeholder=
"`${cn.pleaseChoose}${en.pleaseChoose}`"
clearable
style=
"width: 200px"
>
...
...
@@ -56,7 +56,7 @@
</
template
>
<el-select
v-model=
"queryParams.vehicleModelCode"
:placeholder=
"`${cn.pleaseChooseOrEnter}
/
${en.pleaseChooseOrEnter}`"
:placeholder=
"`${cn.pleaseChooseOrEnter}${en.pleaseChooseOrEnter}`"
clearable
filterable
style=
"width: 200px"
...
...
@@ -81,7 +81,7 @@
</
template
>
<el-select
v-model=
"queryParams.vehicleSeries"
:placeholder=
"`${cn.pleaseChoose}
/
${en.pleaseChoose}`"
:placeholder=
"`${cn.pleaseChoose}${en.pleaseChoose}`"
clearable
style=
"width: 200px"
>
...
...
@@ -108,7 +108,7 @@
</
template
>
<el-input
v-model=
"queryParams.versionNumber"
:placeholder=
"`${cn.pleaseEnter}
/
${en.pleaseEnter}`"
:placeholder=
"`${cn.pleaseEnter}${en.pleaseEnter}`"
clearable
style=
"width: 200px"
/>
...
...
@@ -126,7 +126,7 @@
</
template
>
<el-input
v-model=
"queryParams.productionAddress"
:placeholder=
"`${cn.pleaseEnter}
/
${en.pleaseEnter}`"
:placeholder=
"`${cn.pleaseEnter}${en.pleaseEnter}`"
clearable
style=
"width: 200px"
/>
...
...
@@ -144,7 +144,7 @@
</
template
>
<el-input
v-model=
"queryParams.createBy"
:placeholder=
"`${cn.pleaseEnter}
/
${en.pleaseEnter}`"
:placeholder=
"`${cn.pleaseEnter}${en.pleaseEnter}`"
clearable
style=
"width: 200px"
/>
...
...
@@ -162,7 +162,7 @@
</
template
>
<el-input
v-model=
"queryParams.productionFactory"
:placeholder=
"`${cn.pleaseEnter}
/
${en.pleaseEnter}`"
:placeholder=
"`${cn.pleaseEnter}${en.pleaseEnter}`"
clearable
style=
"width: 200px"
/>
...
...
@@ -182,7 +182,7 @@
</
template
>
<el-select
v-model=
"queryParams.controlPlanStatus"
:placeholder=
"`${cn.pleaseChoose}
/
${en.pleaseChoose}`"
:placeholder=
"`${cn.pleaseChoose}${en.pleaseChoose}`"
clearable
style=
"width: 200px"
>
...
...
@@ -198,15 +198,15 @@
<!-- 重置搜索按钮 -->
<el-col
:span=
"18"
>
<div
class=
"button-container"
>
<el-button
style=
"width: 110px"
class=
"btn-A"
@
click=
"handleQuery"
>
{{ cn.search }}
/
{{ en.search }}
</el-button>
<el-button
style=
"width: 110px"
class=
"btn-B"
@
click=
"resetQuery"
>
{{ cn.reset }}
/
{{ en.reset }}
</el-button>
<el-button
style=
"width: 110px"
class=
"btn-A"
@
click=
"handleQuery"
>
{{ cn.search }}{{ en.search }}
</el-button>
<el-button
style=
"width: 110px"
class=
"btn-B"
@
click=
"resetQuery"
>
{{ cn.reset }}{{ en.reset }}
</el-button>
</div>
</el-col>
</el-row>
</el-form>
<div
class=
"button-container"
>
<el-button
style=
"float: right"
class=
"btn-C"
@
click=
"viewHistory"
>
{{cn.viewHistoricalControlPlan}}
/
{{en.viewHistoricalControlPlan}}
</el-button>
<el-button
style=
"float: right"
class=
"btn-C"
@
click=
"viewHistory"
>
{{cn.viewHistoricalControlPlan}}{{en.viewHistoricalControlPlan}}
</el-button>
</div>
<el-table
v-loading=
"loading"
:data=
"planList"
@
selection-change=
"handleSelectionChange"
>
...
...
@@ -395,7 +395,7 @@
</div>
</el-button>
<!-- 撤销 -->
<el-button
v-show=
"scope.row.controlPlanStatus
=== 'plan_drafting' || scope.row.controlPlanStatus === 'plan_draft_comp
leted'"
link
type=
"danger"
@
click=
"handleUndo(scope.row)"
>
<el-button
v-show=
"scope.row.controlPlanStatus
!== 'plan_draft_revoked' && scope.row.controlPlanStatus !== 'plan_draft_de
leted'"
link
type=
"danger"
@
click=
"handleUndo(scope.row)"
>
<div>
<div>
{{
cn
.
revoke
}}
</div>
<div>
{{
en
.
revoke
}}
</div>
...
...
@@ -455,7 +455,7 @@
@
pagination=
"getList"
/>
<!-- 撤销弹出框 -->
<!-- 撤销弹出框 -->
<DeleteDialog
:visible=
"undoDialogVisible"
:content=
"cn.confirmUndoControlPlan"
...
...
@@ -884,6 +884,11 @@ function viewHistory() {
proxy
.
$router
.
push
({
path
:
'/control/CQCControlPlan/CQCControlPlanHistory'
});
}
/** 查看文件按钮操作 */
function
handleViewFile
()
{
proxy
.
$router
.
push
({
path
:
'/control/CQCControlPlan/CQCViewFile'
});
}
/** 查看按钮操作 */
function
handleView
(
row
)
{
proxy
.
$router
.
push
({
path
:
'/control/CQCControlPlan/CQCControlPlanView'
,
query
:
{
id
:
row
.
id
}});
...
...
This diff is collapsed.
Click to expand it.
src/views/controlPlan/CQCControlPlan/CQCControlPlanManagement/view.vue
View file @
1efb1e24
...
...
@@ -65,12 +65,21 @@ import criticalPartsControl from '@/views/controlPlan/CQCControlPlan/CQCControlP
import
manufacturingProcessControl
from
'@/views/controlPlan/CQCControlPlan/CQCControlPlanManagement/manufacturingProcessControl.vue'
import
wholeVehicleCopControl
from
'@/views/controlPlan/CQCControlPlan/CQCControlPlanManagement/wholeVehicleCopControl.vue'
import
procurementQualityControl
from
'@/views/controlPlan/CQCControlPlan/CQCControlPlanManagement/procurementQualityControl.vue'
import
{
useRouter
,
useRoute
}
from
'vue-router'
const
router
=
useRouter
()
const
route
=
useRoute
()
const
{
proxy
}
=
getCurrentInstance
();
const
source
=
route
.
query
.
source
const
activeName
=
ref
(
"criticalPartsControl"
);
const
handleBack
=
()
=>
{
proxy
.
$router
.
push
({
path
:
'/control/CQCControlPlan/CQCControlPlanIndex'
});
if
(
source
===
'history'
)
{
proxy
.
$router
.
push
({
path
:
'/control/CQCControlPlan/CQCControlPlanHistory'
})
}
else
{
proxy
.
$router
.
push
({
path
:
'/control/CQCControlPlan/CQCControlPlanIndex'
});
}
}
...
...
This diff is collapsed.
Click to expand it.
src/views/controlPlan/CQCControlPlan/CQCControlPlanManagement/viewFile.vue
0 → 100644
View file @
1efb1e24
<
template
>
<div
class=
"app-container"
>
<div
class=
"header-container"
>
<div
class=
"left-content"
>
<el-button
link
@
click=
"handleBack"
style=
"font-size: 16px; margin-right: 16px"
>
<el-icon>
<ArrowLeft
/>
</el-icon>
返回
</el-button>
<el-text
style=
"margin-left: 20px; color: black"
>
事业部:
<span
style=
"font-weight: 800; margin-left: 10px"
>
奇瑞
</span>
</el-text>
<el-text
style=
"margin-left: 20px; color: black"
>
车型代码:
<span
style=
"font-weight: 800; margin-left: 10px"
>
T28
<!--
{{
descriptionsList
.
vehicleModelCode
}}
-->
</span
>
</el-text>
<el-text
style=
"margin-left: 20px; color: black"
>
车型系列:
<span
style=
"font-weight: 800; margin-left: 10px"
>
CJ1A
<!--
{{
descriptionsList
.
vehicleSeries
}}
-->
</span
>
</el-text>
<el-text
style=
"margin-left: 20px; color: black"
>
版本号:
<span
style=
"font-weight: 800; margin-left: 10px"
>
A0
<!--
{{
descriptionsList
.
versionNo
}}
-->
</span
>
</el-text>
<el-text
style=
"margin-left: 20px; color: black"
>
生产地址:
<span
style=
"font-weight: 800; margin-left: 10px"
>
XXXXXXXXXXX
<!--
{{
descriptionsList
.
productionAddress
}}
-->
</span
>
</el-text>
</div>
<div
class=
"right-buttons"
>
<el-button
class=
"btn-A"
style=
"float: right"
>
重新生成
</el-button>
<el-button
class=
"btn-A"
style=
"float: right"
>
查看变更履历
</el-button>
<el-button
class=
"btn-A"
style=
"float: right"
>
下载
</el-button>
</div>
</div>
</div>
</
template
>
<
script
setup
>
import
{
useRouter
,
useRoute
}
from
'vue-router'
const
router
=
useRouter
()
const
route
=
useRoute
()
const
{
proxy
}
=
getCurrentInstance
()
const
source
=
route
.
query
.
source
const
handleBack
=
()
=>
{
if
(
source
===
'history'
){
proxy
.
$router
.
push
({
path
:
'/control/CQCControlPlan/CQCControlPlanHistory'
})
}
else
{
proxy
.
$router
.
push
({
path
:
'/control/CQCControlPlan/CQCControlPlanIndex'
})
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
.header-container
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
padding
:
10px
0
;
}
.button-container
{
display
:
flex
;
justify-content
:
flex-end
;
margin-bottom
:
20px
;
}
:deep
(
.el-pagination
)
{
display
:
flex
;
justify-content
:
center
;
width
:
100%
;
margin-top
:
24px
;
}
:deep
(
.el-pagination.is-background
.el-pager
li
.is-active
)
{
background-color
:
#0154fb
;
}
:deep
(
.el-checkbox__input.is-checked
+
.el-checkbox__label
)
{
}
.tab-components
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-top
:
20px
;
.components-span
{
border-left
:
5px
solid
#409eff
;
padding-left
:
5px
;
color
:
#409eff
;
font-weight
:
bold
;
}
}
.my-dialog-style
{
--el-dialog-header-background-color
:
#f5f5f5
;
--el-dialog-header-text-color
:
#333
;
}
.section
{
margin-bottom
:
10px
;
font-weight
:
500
;
}
.section-number
{
color
:
#409eff
;
margin-right
:
5px
;
}
.right-buttons
{
display
:
flex
;
gap
:
16px
;
/* 按钮之间的间距 */
}
</
style
>
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment