明树Git Lab
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
J
jt_front
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
Administrator
jt_front
Commits
d3e79971
Commit
d3e79971
authored
Mar 19, 2026
by
zhanghan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加搜索条件
parent
ea4b8bb4
Pipeline
#108558
passed with stage
in 20 seconds
Changes
51
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
51 changed files
with
2642 additions
and
2079 deletions
+2642
-2079
CommonSelector.vue
src/components/CommonSelector.vue
+9
-2
SearchForm.vue
src/components/common/SearchForm.vue
+343
-332
commonTable.vue
src/components/common/commonTable.vue
+10
-11
MainLayout.vue
src/layouts/MainLayout.vue
+3
-1
manage.css
src/styles/manage.css
+2
-2
manage.less
src/styles/manage.less
+5
-2
verticalManages.css
src/styles/verticalManages.css
+69
-34
verticalManages.less
src/styles/verticalManages.less
+53
-15
evaluate.vue
src/views/castbehind/evaluate.vue
+13
-5
evaluateAdd.vue
src/views/castbehind/evaluateAdd.vue
+2
-1
investmentCecovery.vue
src/views/castbehind/investmentCecovery.vue
+13
-5
investmentCecoveryAdd.vue
src/views/castbehind/investmentCecoveryAdd.vue
+3
-1
runningPeriod.vue
src/views/castbehind/runningPeriod.vue
+12
-6
runningPeriodAdd.vue
src/views/castbehind/runningPeriodAdd.vue
+2
-1
turnover.vue
src/views/castbehind/turnover.vue
+14
-5
turnoverAdd.vue
src/views/castbehind/turnoverAdd.vue
+8
-2
cost.vue
src/views/elseManage/cost.vue
+13
-5
costAdd.vue
src/views/elseManage/costAdd.vue
+8
-2
annual.vue
src/views/everydayPage/annual.vue
+13
-5
annualAdd.vue
src/views/everydayPage/annualAdd.vue
+8
-2
everyday.vue
src/views/everydayPage/everyday.vue
+13
-5
informationConstruction.vue
src/views/everydayPage/informationConstruction.vue
+13
-5
investment.vue
src/views/everydayPage/investment.vue
+13
-5
record.vue
src/views/everydayPage/record.vue
+13
-5
recordAdd.vue
src/views/everydayPage/recordAdd.vue
+2
-1
share.vue
src/views/everydayPage/share.vue
+13
-5
shareAdd.vue
src/views/everydayPage/shareAdd.vue
+2
-1
system.vue
src/views/everydayPage/system.vue
+13
-5
vscouncil.vue
src/views/everydayPage/vscouncil.vue
+13
-5
addControl.vue
src/views/investingManage/addControl.vue
+2
-1
addRisk.vue
src/views/investingManage/addRisk.vue
+567
-427
addStatement.vue
src/views/investingManage/addStatement.vue
+2
-1
bigIssues.vue
src/views/investingManage/bigIssues.vue
+13
-5
bigIssuesAdd.vue
src/views/investingManage/bigIssuesAdd.vue
+2
-1
construction.vue
src/views/investingManage/construction.vue
+13
-5
constructionAdd.vue
src/views/investingManage/constructionAdd.vue
+2
-1
constructionTime.vue
src/views/investingManage/constructionTime.vue
+13
-5
constructionTimeAdd.vue
src/views/investingManage/constructionTimeAdd.vue
+2
-1
decision.vue
src/views/investingManage/decision.vue
+13
-5
decisionAdd.vue
src/views/investingManage/decisionAdd.vue
+8
-2
majorRisk.vue
src/views/investingManage/majorRisk.vue
+147
-128
quit.vue
src/views/investingManage/quit.vue
+13
-5
quitAdd.vue
src/views/investingManage/quitAdd.vue
+8
-2
targetControl.vue
src/views/investingManage/targetControl.vue
+164
-135
targetLiabilityStatement.vue
src/views/investingManage/targetLiabilityStatement.vue
+173
-145
projectAllPage.vue
src/views/projectManage/projectAllPage.vue
+5
-85
projectArgument.vue
src/views/projectManage/projectArgument.vue
+157
-128
projectDecision.vue
src/views/projectManage/projectDecision.vue
+153
-124
projectDraft.vue
src/views/projectManage/projectDraft.vue
+179
-143
projectSetUp.vue
src/views/projectManage/projectSetUp.vue
+170
-138
templateManage.vue
src/views/projectManage/templateManage.vue
+138
-116
No files found.
src/components/CommonSelector.vue
View file @
d3e79971
...
...
@@ -6,6 +6,7 @@
:placeholder=
"placeholder"
:no-data-text=
"noDataText"
:disabled=
"disabled"
:clearable=
"clearable"
style=
"width: 100%"
@
change=
"handleChange"
>
...
...
@@ -23,6 +24,7 @@
:disabled=
"disabled"
@
change=
"handleChange"
class=
"common-radio-group"
:clearable=
"clearable"
>
<el-radio
v-for=
"(item, index) in currentOptions"
...
...
@@ -62,6 +64,11 @@ const props = defineProps({
type
:
String
,
default
:
"name"
,
},
clearable
:
{
type
:
Boolean
,
default
:
true
,
},
// 可选:自定义选项值字段(默认key)
valueKey
:
{
type
:
String
,
...
...
@@ -133,7 +140,7 @@ watch(
(
newVal
)
=>
{
innerValue
.
value
=
newVal
;
},
{
immediate
:
true
}
{
immediate
:
true
}
,
);
// 监听2:dictName/labelKey/valueKey变化,重新读取字典(适配动态切换字典的场景)
...
...
@@ -142,7 +149,7 @@ watch(
()
=>
{
getDictFromStorage
();
},
{
deep
:
true
}
{
deep
:
true
}
,
);
// 核心:值变化时更新外部v-model
...
...
src/components/common/SearchForm.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-search"
>
<div
class=
"search-form"
>
<el-form
ref=
"formRef"
...
...
@@ -24,11 +25,11 @@
v-if=
"item.type === 'input'"
v-model=
"formData[item.prop]"
:placeholder=
"item.placeholder || `请输入$
{item.label}`"
:clearable="item.clearable !== fals
e"
:clearable="item.clearabl
e"
:disabled="item.disabled"
:maxlength="item.maxlength"
@keyup.enter="handleEnterSearch(item)"
@clear="handleFieldClear(item)
"
@clear="handleSearch
"
/>
<!-- 选择器 -->
...
...
@@ -36,12 +37,11 @@
v-else-if=
"item.type === 'select'"
v-model=
"formData[item.prop]"
:placeholder=
"item.placeholder || `请选择$
{item.label}`"
:clearable="item.clearable !== fals
e"
:clearable="item.clearabl
e"
:disabled="item.disabled"
:multiple="item.multiple"
:filterable="item.filterable"
@clear="handleFieldClear(item)"
@change="handleFieldChange(item, $event)"
@clear="handleSearch"
>
<el-option
v-for=
"option in item.options"
...
...
@@ -56,13 +56,13 @@
<common-selector
v-else-if=
"item.type === 'dict-select'"
v-model=
"formData[item.prop]"
:clearable=
"item.clearable"
:dict-name=
"item.dictName"
:label-key=
"item.labelKey || 'name'"
:value-key=
"item.valueKey || 'key'"
:placeholder=
"item.placeholder || `请选择$
{item.label}`"
:disabled="item.disabled"
:radio="item.radio"
@change="handleFieldChange(item, $event)"
/>
<!-- 日期选择器 -->
...
...
@@ -73,12 +73,11 @@
:placeholder=
"item.placeholder || `请选择$
{item.label}`"
:format="item.format"
:value-format="item.valueFormat"
:clearable="item.clearable !== fals
e"
:clearable="item.clearabl
e"
:disabled="item.disabled"
:start-placeholder="item.startPlaceholder"
:end-placeholder="item.endPlaceholder"
@clear="handleFieldClear(item)"
@change="handleFieldChange(item, $event)"
@clear="handleSearch"
/>
<!-- 日期范围选择器 -->
...
...
@@ -91,10 +90,9 @@
:end-placeholder=
"item.endPlaceholder || '结束日期'"
:format=
"item.format"
:value-format=
"item.valueFormat"
:clearable=
"item.clearable !== fals
e"
:clearable=
"item.clearabl
e"
:disabled=
"item.disabled"
@
clear=
"handleFieldClear(item)"
@
change=
"handleFieldChange(item, $event)"
@
clear=
"handleSearch"
/>
<!-- 单选框组 -->
...
...
@@ -102,7 +100,6 @@
v-else-if=
"item.type === 'radio'"
v-model=
"formData[item.prop]"
:disabled=
"item.disabled"
@
change=
"handleFieldChange(item, $event)"
>
<el-radio
v-for=
"option in item.options"
...
...
@@ -118,7 +115,6 @@
v-else-if=
"item.type === 'checkbox'"
v-model=
"formData[item.prop]"
:disabled=
"item.disabled"
@
change=
"handleFieldChange(item, $event)"
>
<el-checkbox
v-for=
"option in item.options"
...
...
@@ -139,7 +135,6 @@
:disabled=
"item.disabled"
:controls=
"item.controls !== false"
@
keyup
.
enter=
"handleEnterSearch(item)"
@
change=
"handleFieldChange(item, $event)"
/>
<!-- 级联选择器 -->
...
...
@@ -148,11 +143,10 @@
v-model=
"formData[item.prop]"
:options=
"item.options"
:props=
"item.props ||
{}"
:clearable="item.clearable !== fals
e"
:clearable="item.clearabl
e"
:disabled="item.disabled"
:filterable="item.filterable"
@clear="handleFieldClear(item)"
@change="handleFieldChange(item, $event)"
@clear="handleSearch"
/>
<!-- 树选择器 -->
...
...
@@ -161,12 +155,11 @@
v-model=
"formData[item.prop]"
:data=
"item.data"
:props=
"item.props ||
{}"
:clearable="item.clearable !== fals
e"
:clearable="item.clearabl
e"
:disabled="item.disabled"
:filterable="item.filterable"
:check-strictly="item.checkStrictly"
@clear="handleFieldClear(item)"
@change="handleFieldChange(item, $event)"
@clear="handleSearch"
/>
<!-- 自定义插槽 -->
...
...
@@ -176,7 +169,6 @@
:prop=
"item.prop"
:item=
"item"
:value=
"formData[item.prop]"
:onChange=
"(value) => handleSlotChange(item, value)"
/>
</el-form-item>
</el-col>
...
...
@@ -197,117 +189,114 @@
</el-row>
</el-form>
</div>
</div>
</
template
>
<
script
setup
>
import
{
ref
,
reactive
,
watch
,
onMounted
}
from
"vue"
;
import
{
ref
,
reactive
,
watch
,
nextTick
}
from
"vue"
;
import
{
Search
,
RefreshLeft
}
from
"@element-plus/icons-vue"
;
import
CommonSelector
from
"@/components/CommonSelector.vue"
;
const
props
=
defineProps
({
// 表单项配置
items
:
{
type
:
Array
,
default
:
()
=>
[],
},
// 表单数据
modelValue
:
{
type
:
Object
,
default
:
()
=>
({}),
},
// 是否行内表单
inline
:
{
type
:
Boolean
,
default
:
true
,
},
// 标签宽度
labelWidth
:
{
type
:
String
,
default
:
"auto"
,
default
:
()
=>
[
{
type
:
"input"
,
label
:
"项目名称"
,
prop
:
"projectName"
,
placeholder
:
"请输入项目名称"
,
span
:
6
,
clearable
:
true
,
},
// 表单尺寸
size
:
{
type
:
String
,
default
:
"default"
,
{
type
:
"input"
,
label
:
"项目编号"
,
prop
:
"projectCode"
,
placeholder
:
"请输入项目编号"
,
span
:
6
,
clearable
:
true
,
},
// 栅格间隔
gutter
:
{
type
:
Number
,
default
:
16
,
{
type
:
"input"
,
label
:
"直属企业"
,
prop
:
"zsqy"
,
placeholder
:
"请输入直属企业"
,
span
:
6
,
clearable
:
true
,
},
// 默认每个表单项占的列数
defaultSpan
:
{
type
:
Number
,
default
:
6
,
{
type
:
"input"
,
label
:
"管理主体"
,
prop
:
"glzt"
,
placeholder
:
"请输入管理主体"
,
span
:
6
,
clearable
:
true
,
},
// 按钮列数
buttonSpan
:
{
type
:
Number
,
default
:
6
,
{
type
:
"input"
,
label
:
"联系人"
,
prop
:
"lxr"
,
placeholder
:
"请输入联系人"
,
span
:
6
,
clearable
:
true
,
},
// 搜索按钮文本
searchText
:
{
type
:
String
,
default
:
"搜索
"
,
}
,
// 重置按钮文本
resetText
:
{
type
:
String
,
default
:
"重置"
,
{
type
:
"dict-select"
,
label
:
"项目阶段
"
,
prop
:
"xmjd"
,
dictName
:
"xmjd"
,
placeholder
:
"请选择项目阶段"
,
span
:
6
,
clearable
:
true
,
},
// 是否在重置时自动搜索
autoSearchOnReset
:
{
type
:
Boolean
,
default
:
true
,
{
type
:
"dict-select"
,
label
:
"项目区域"
,
prop
:
"xmqy"
,
dictName
:
"xmqy"
,
placeholder
:
"请选择项目区域"
,
span
:
6
,
clearable
:
true
,
},
// 是否在字段清空时自动搜索
autoSearchOnClear
:
{
type
:
Boolean
,
default
:
false
,
],
},
inline
:
{
type
:
Boolean
,
default
:
true
},
labelWidth
:
{
type
:
String
,
default
:
"auto"
},
size
:
{
type
:
String
,
default
:
"default"
},
gutter
:
{
type
:
Number
,
default
:
16
},
defaultSpan
:
{
type
:
Number
,
default
:
6
},
buttonSpan
:
{
type
:
Number
,
default
:
6
},
searchText
:
{
type
:
String
,
default
:
"搜索"
},
resetText
:
{
type
:
String
,
default
:
"重置"
},
autoSearchOnReset
:
{
type
:
Boolean
,
default
:
true
},
autoSearchOnClear
:
{
type
:
Boolean
,
default
:
false
},
});
const
emit
=
defineEmits
([
"update:modelValue"
,
"search"
,
"reset"
,
"field-change"
,
"field-clear"
,
"
enter-search
"
,
"
form-data-change
"
,
]);
const
formRef
=
ref
();
const
formData
=
reactive
({});
// 表单项配置
const
defaultFormData
=
ref
({});
// 缓存初始值用于重置
const
formItems
=
props
.
items
;
// 初始化表单数据
const
initFormData
=
()
=>
{
Object
.
keys
(
formData
).
forEach
((
key
)
=>
{
delete
formData
[
key
];
});
formItems
.
forEach
((
item
)
=>
{
if
(
item
.
prop
)
{
if
(
props
.
modelValue
[
item
.
prop
]
!==
undefined
)
{
formData
[
item
.
prop
]
=
props
.
modelValue
[
item
.
prop
];
}
else
{
formData
[
item
.
prop
]
=
item
.
defaultValue
!==
undefined
?
item
.
defaultValue
:
getDefaultValue
(
item
.
type
);
}
}
});
};
// --- 工具函数 ---
//
获取不同类型的默认
值
//
1. 获取类型的默认空
值
const
getDefaultValue
=
(
type
)
=>
{
switch
(
type
)
{
case
"checkbox"
:
return
[];
case
"number"
:
return
null
;
return
null
;
// 数字通常用null表示空
case
"daterange"
:
return
[];
default
:
...
...
@@ -315,84 +304,100 @@ const getDefaultValue = (type) => {
}
};
// 监听表单数据变化
watch
(
formData
,
(
newVal
)
=>
{
emit
(
"update:modelValue"
,
{
...
newVal
});
},
{
deep
:
true
},
);
// 监听外部数据变化
watch
(
()
=>
props
.
modelValue
,
(
newVal
)
=>
{
Object
.
keys
(
newVal
).
forEach
((
key
)
=>
{
if
(
formData
.
hasOwnProperty
(
key
))
{
formData
[
key
]
=
newVal
[
key
];
// 2. 核心过滤器:移除空值、空字符串、空数组
const
filterEmptyValues
=
(
data
)
=>
{
const
filteredData
=
{};
Object
.
entries
(
data
).
forEach
(([
key
,
value
])
=>
{
// 只要不是空字符串、null、undefined 或 空数组,就保留
if
(
value
!==
""
&&
value
!==
null
&&
value
!==
undefined
&&
!
(
Array
.
isArray
(
value
)
&&
value
.
length
===
0
)
)
{
filteredData
[
key
]
=
value
;
}
});
},
{
deep
:
true
},
);
// 搜索处理
const
handleSearch
=
()
=>
{
emit
(
"search"
,
{
...
formData
});
return
filteredData
;
};
// 重置处理
const
handleReset
=
()
=>
{
formRef
.
value
?.
resetFields
();
initFormData
();
emit
(
"reset"
,
{
...
formData
});
if
(
props
.
autoSearchOnReset
)
{
emit
(
"search"
,
{
...
formData
});
// --- 核心逻辑 ---
// 初始化数据
const
initFormData
=
(
isReset
=
false
)
=>
{
// 先清空
Object
.
keys
(
formData
).
forEach
((
key
)
=>
delete
formData
[
key
]);
formItems
.
forEach
((
item
)
=>
{
if
(
item
.
prop
)
{
let
val
;
if
(
isReset
)
{
// 重置模式:使用缓存的初始值
val
=
defaultFormData
.
value
[
item
.
prop
];
}
else
{
// 初始化模式:使用配置的默认值或类型默认值
val
=
item
.
defaultValue
!==
undefined
?
item
.
defaultValue
:
getDefaultValue
(
item
.
type
);
defaultFormData
.
value
[
item
.
prop
]
=
val
;
// 缓存
}
};
formData
[
item
.
prop
]
=
val
;
}
});
// 字段变化处理
const
handleFieldChange
=
(
item
,
value
)
=>
{
emit
(
"field-change"
,
item
.
prop
,
value
,
formData
);
// 通知外部数据已更新(此时是原始数据,包含空值)
emit
(
"form-data-change"
,
{
...
formData
});
};
// 字段清空处理
const
handleFieldClear
=
(
item
)
=>
{
emit
(
"field-clear"
,
item
.
prop
,
formData
);
if
(
props
.
autoSearchOnClear
)
{
emit
(
"search"
,
{
...
formData
});
}
// 唯一的搜索出口:负责过滤数据并发射事件
const
handleSearch
=
()
=>
{
const
result
=
filterEmptyValues
(
formData
);
emit
(
"search"
,
result
);
};
// 插槽变化处理
const
handleSlotChange
=
(
item
,
value
)
=>
{
formData
[
item
.
prop
]
=
value
;
emit
(
"field-change"
,
item
.
prop
,
value
,
formData
);
// 重置逻辑:恢复数据 -> 触发搜索
const
handleReset
=
()
=>
{
formRef
.
value
?.
clearValidate
();
// 清除校验
initFormData
(
true
);
// 恢复初始状态(空状态)
emit
(
"reset"
,
{
...
formData
});
// 通知重置事件
// 统一调用搜索,此时 handleSearch 会自动过滤掉刚恢复的空值
if
(
props
.
autoSearchOnReset
)
{
nextTick
(()
=>
handleSearch
());
}
};
// 回车搜索
处理
// 回车搜索
const
handleEnterSearch
=
(
item
)
=>
{
emit
(
"enter-search"
,
item
.
prop
,
formData
);
// 某些输入框可能需要在回车时触发搜索
if
(
item
.
searchOnEnter
!==
false
)
{
// 统一调用 handleSearch 进行过滤和提交
handleSearch
();
}
};
//
暴露方法
//
--- 暴露给父组件的方法 ---
defineExpose
({
formRef
,
formData
,
// 获取过滤后的数据(推荐用于外部调用)
getFormData
:
()
=>
filterEmptyValues
(
formData
),
// 获取原始数据(包含空值)
getRawFormData
:
()
=>
({
...
formData
}),
// 外部触发重置
resetFields
:
handleReset
,
// 外部触发搜索
search
:
handleSearch
,
// 外部设置数据
setFormData
:
(
newData
)
=>
{
Object
.
keys
(
newData
).
forEach
((
key
)
=>
{
if
(
formData
.
hasOwnProperty
(
key
))
{
formData
[
key
]
=
newData
[
key
];
}
});
},
});
onMounted
(()
=>
{
initFormData
();
});
// 组件挂载初始化
initFormData
(
false
);
</
script
>
<
style
lang=
"less"
scoped
>
.search-form {
:deep(.el-form-item) {
...
...
@@ -409,6 +414,12 @@ onMounted(() => {
:deep(.el-cascader),
:deep(.el-tree-select) {
width: 100%;
// 增强 el-select 宽度生效
&.el-select {
.el-select__wrapper {
width: 100% !important;
}
}
}
.search-form-buttons {
...
...
src/components/common/commonTable.vue
View file @
d3e79971
...
...
@@ -5,7 +5,6 @@
style=
"width: 100%"
:data=
"tableData"
:stripe=
"stripe"
border
:size=
"size"
:fit=
"fit"
:show-header=
"showTableHeader"
...
...
@@ -403,14 +402,14 @@ watch(
()
=>
props
.
currentPage
,
(
newVal
)
=>
{
currentPage
.
value
=
newVal
;
}
}
,
);
watch
(
()
=>
props
.
pageSize
,
(
newVal
)
=>
{
pageSize
.
value
=
newVal
;
}
}
,
);
// 事件处理函数
...
...
@@ -537,7 +536,7 @@ const handleNextClick = (val) => {
height: 0;
display: flex;
flex-direction: column;
.el-table{
.el-table
{
flex: 1;
height: 0;
}
...
...
@@ -583,7 +582,7 @@ const handleNextClick = (val) => {
}
:deep(.el-table) {
th.el-table__cell {
background: #f
5f7
fa;
background: #f
afa
fa;
height: 50px;
text-align: center;
}
...
...
src/layouts/MainLayout.vue
View file @
d3e79971
...
...
@@ -234,6 +234,9 @@ const handleLogout = () => {
height: 40px;
line-height: 40px;
}
::v-deep .el-menu {
border-right: none;
}
::v-deep .el-sub-menu {
color: #666;
font-size: 14px;
...
...
@@ -337,7 +340,6 @@ const handleLogout = () => {
}
.city-main {
height: calc(100vh - 60px);
overflow-y: auto;
background-color: #ecf2f8;
--el-main-padding: 0;
...
...
src/styles/manage.css
View file @
d3e79971
...
...
@@ -36,7 +36,7 @@
box-shadow
:
0
2px
8px
rgba
(
0
,
0
,
0
,
0.1
);
}
.manage-search
{
padding
:
16px
;
padding
:
24px
16px
8px
16px
;
background
:
#fff
;
margin-bottom
:
16px
;
border-radius
:
4px
;
...
...
@@ -64,7 +64,7 @@
.manage-container
{
width
:
100%
;
height
:
100%
;
padding
:
16
px
;
padding
:
24px
24px
0
24
px
;
box-sizing
:
border-box
;
display
:
flex
;
flex-direction
:
column
;
...
...
src/styles/manage.less
View file @
d3e79971
...
...
@@ -12,6 +12,7 @@
padding-top: 16px;
padding-right: 16px;
}
.system-manage-header {
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
...
...
@@ -37,7 +38,8 @@
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.manage-search {
padding: 16px;
padding: 24px 16px 8px 16px;
background: #fff;
margin-bottom: 16px;
border-radius: 4px;
...
...
@@ -68,7 +70,8 @@
&-container {
width: 100%;
height: 100%;
padding: 16px;
padding: 24px 24px 0 24px;
box-sizing: border-box;
display: flex;
flex-direction: column;
...
...
src/styles/verticalManages.css
View file @
d3e79971
...
...
@@ -6,6 +6,11 @@
flex-direction
:
column
;
box-sizing
:
border-box
;
}
.add-project-content
{
background-color
:
#fff
;
padding-top
:
16px
;
padding-right
:
16px
;
}
.system-manage-header
{
background
:
rgba
(
255
,
255
,
255
,
0.9
);
border-radius
:
8px
;
...
...
@@ -24,17 +29,14 @@
.system-manage-header
.header-left
.el-select
{
width
:
220px
;
}
.add-project-content
{
background-color
:
#fff
;
}
.system-manage-content
{
background
:
rgba
(
255
,
255
,
255
,
0.9
);
border-radius
:
8px
;
padding
:
16
px
;
padding
:
20
px
;
box-shadow
:
0
2px
8px
rgba
(
0
,
0
,
0
,
0.1
);
}
.manage-search
{
padding
:
16px
;
padding
:
24px
16px
8px
16px
;
background
:
#fff
;
margin-bottom
:
16px
;
border-radius
:
4px
;
...
...
@@ -47,6 +49,7 @@
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
border-radius
:
0
;
}
.manage-content
.common-table
.table-container
{
flex
:
1
;
...
...
@@ -61,7 +64,7 @@
.manage-container
{
width
:
100%
;
height
:
100%
;
padding
:
16
px
;
padding
:
24px
24px
0
24
px
;
box-sizing
:
border-box
;
display
:
flex
;
flex-direction
:
column
;
...
...
@@ -73,9 +76,12 @@
flex-direction
:
column
;
}
.manage-header
{
padding-top
:
16px
;
padding-right
:
16px
;
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
10px
;
padding-bottom
:
10px
;
background-color
:
#fff
;
}
.manage-content
{
flex
:
1
;
...
...
@@ -87,7 +93,6 @@
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
border-radius
:
0
;
}
.manage-content
.common-table
.table-container
{
flex
:
1
;
...
...
@@ -99,7 +104,7 @@
flex
:
1
;
height
:
0
;
}
::v-deep
.add-project-container
{
.add-project-container
{
width
:
100%
;
height
:
100%
;
padding
:
16px
;
...
...
@@ -107,74 +112,81 @@
display
:
flex
;
flex-direction
:
column
;
}
::v-deep
.add-project-container
.el-collapse-item__header
{
.add-project-container
.el-collapse-item__header
{
color
:
var
(
--el-color-primary
);
}
::v-deep
.add-project-header
{
.add-project-header
{
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
10px
;
}
.add-project-content
{
flex
:
1
;
height
:
0
;
display
:
flex
;
flex-direction
:
column
;
}
::v-deep
.add-project
-content
{
.add-project-content
.tabs
-content
{
flex
:
1
;
height
:
0
;
display
:
flex
;
flex-direction
:
column
;
}
::v-deep
.add-project-content
.tabs-content
{
.add-project-content
.tabs-content
>
.el-tabs
{
flex
:
1
;
height
:
0
;
}
::v-deep
.add-project-content
.el-tabs
{
.add-project-content
.el-tabs
{
height
:
100%
;
}
::v-deep
.add-project-content
.el-tab-pane
{
.add-project-content
.el-tab-pane
{
height
:
100%
;
}
::v-deep
.add-project-content
.tab-content
{
.add-project-content
.tab-content
{
height
:
100%
;
overflow
:
auto
;
padding
:
0
10px
;
}
::v-deep
.add-project-content
.tab-content
.col-title
{
.add-project-content
.tab-content
.col-title
{
height
:
24px
;
line-height
:
24px
;
font-weight
:
bold
;
text-align
:
center
;
}
::v-deep
.add-project-content
.tab-content
.tab-handle
{
margin
-bottom
:
16px
;
.add-project-content
.tab-content
.tab-handle
{
margin
:
10px
0
;
display
:
flex
;
justify-content
:
flex-end
;
align-items
:
center
;
}
::v-deep
.add-project-content
.tab-content
.el-table
{
.add-project-content
.tab-content
.el-table
{
margin-bottom
:
10px
;
}
::v-deep
.add-project-content
.tab-content
.el-table
thead
{
.add-project-content
.tab-content
.el-table
thead
{
color
:
#000
;
}
::v-deep
.add-project-content
.tab-content
.el-table
thead
th
{
.add-project-content
.tab-content
.el-table
thead
th
{
background
:
#f5f7fa
;
}
::v-deep
.add-project-content
.tab-content
.el-table
thead
th
.cell
{
.add-project-content
.tab-content
.el-table
thead
th
.cell
{
text-align
:
center
;
}
::v-deep
.add-project-content
.tab-content
.el-table
.sums-column
{
.add-project-content
.tab-content
.el-table
.sums-column
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
flex-start
;
}
::v-deep
.add-project-content
.tab-content
.el-table
.sums-column
>
div
{
.add-project-content
.tab-content
.el-table
.sums-column
>
div
{
height
:
26px
;
line-height
:
26px
;
text-align
:
center
;
}
::v-deep
.add-project-content
.tab-content
.upload-file-wrap
{
.add-project-content
.tab-content
.upload-file-wrap
{
display
:
flex
;
justify-content
:
space-between
;
flex-wrap
:
wrap
;
}
::v-deep
.add-project-content
.tab-content
.upload-file-wrap
.file-name
{
.add-project-content
.tab-content
.upload-file-wrap
.file-name
{
flex
:
1
;
width
:
0
;
color
:
#409eff
;
...
...
@@ -184,15 +196,41 @@
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
::v-deep
.add-project-content
.tab-content
.upload-file-wrap
.delete-btn
{
.add-project-content
.tab-content
.upload-file-wrap
.delete-btn
{
cursor
:
pointer
;
color
:
#f56c6c
;
}
::v-deep
.add-project-content
.tab-content
.el-select__wrapper
.el-select__selection.is-near
{
.add-project-content
.tab-content
.el-select__wrapper
.el-select__selection.is-near
{
max-height
:
120px
;
overflow
:
auto
;
}
::v-deep
.add-project-content
.always-click
{
.add-project-content
.tab-content
h3
{
text-align
:
center
;
}
.add-project-content
.tab-content
.text-border
{
width
:
100%
;
padding
:
0
10px
;
border
:
1px
solid
#dcdfe6
;
border-radius
:
4px
;
background-color
:
#f5f7fa
;
min-height
:
34px
;
}
.add-project-content
.tab-content
.report-item
{
display
:
flex
;
align-items
:
center
;
margin
:
18px
0
;
}
.add-project-content
.tab-content
.report-label
{
width
:
150px
;
text-align
:
right
;
padding-right
:
12px
;
}
.add-project-content
.tab-content
.report-content
{
border-left
:
1px
solid
#eaeaea
;
flex
:
1
;
width
:
0
;
}
.add-project-content
.always-click
{
padding
:
2px
;
font-size
:
12px
;
cursor
:
pointer
!important
;
...
...
@@ -202,13 +240,10 @@
display
:
inline-flex
;
align-items
:
center
;
}
::v-deep
.add-project-content
.project-tab-content
{
.add-project-content
.project-tab-content
{
padding
:
0
20px
;
height
:
100%
;
}
::v-deep
.el-input
{
width
:
100%
!important
;
}
.add-dialog
.el-tree
{
width
:
100%
;
}
...
...
src/styles/verticalManages.less
View file @
d3e79971
...
...
@@ -7,6 +7,12 @@
box-sizing: border-box;
}
.add-project-content {
background-color: #fff;
padding-top: 16px;
padding-right: 16px;
}
.system-manage-header {
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
...
...
@@ -19,25 +25,21 @@
.header-left {
flex: 1;
width: 0;
.el-input,
.el-select {
width: 220px;
}
}
}
.add-project-content {
background-color: #fff;
}
.system-manage-content {
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
padding:
16
px;
padding:
20
px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.manage-search {
padding: 16px;
padding: 24px 16px 8px 16px;
background: #fff;
margin-bottom: 16px;
border-radius: 4px;
...
...
@@ -50,6 +52,8 @@
height: 100%;
display: flex;
flex-direction: column;
border-radius: 0;
.table-container {
flex: 1;
height: 0;
...
...
@@ -66,7 +70,8 @@
&-container {
width: 100%;
height: 100%;
padding: 16px;
padding: 24px 24px 0 24px;
box-sizing: border-box;
display: flex;
flex-direction: column;
...
...
@@ -79,9 +84,12 @@
}
&-header {
padding-top: 16px;
padding-right: 16px;
display: flex;
justify-content: space-between;
margin-bottom: 10px;
padding-bottom: 10px;
background-color: #fff;
}
&-content {
flex: 1;
...
...
@@ -92,7 +100,6 @@
height: 100%;
display: flex;
flex-direction: column;
border-radius: 0;
.table-container {
flex: 1;
height: 0;
...
...
@@ -107,7 +114,7 @@
}
}
::v-deep
.add-project {
.add-project {
&-container {
width: 100%;
height: 100%;
...
...
@@ -122,6 +129,7 @@
&-header {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
}
&-content {
flex: 1;
...
...
@@ -131,6 +139,12 @@
.tabs-content {
flex: 1;
height: 0;
display: flex;
flex-direction: column;
& > .el-tabs {
flex: 1;
height: 0;
}
}
.el-tabs {
height: 100%;
...
...
@@ -149,7 +163,7 @@
text-align: center;
}
.tab-handle {
margin
-bottom: 16px
;
margin
: 10px 0
;
display: flex;
justify-content: flex-end;
align-items: center;
...
...
@@ -201,6 +215,32 @@
overflow: auto;
}
}
h3 {
text-align: center;
}
.text-border {
width: 100%;
padding: 0 10px;
border: 1px solid #dcdfe6;
border-radius: 4px;
background-color: #f5f7fa;
min-height: 34px;
}
.report-item {
display: flex;
align-items: center;
margin: 18px 0;
}
.report-label {
width: 150px;
text-align: right;
padding-right: 12px;
}
.report-content {
border-left: 1px solid #eaeaea;
flex: 1;
width: 0;
}
}
.always-click {
padding: 2px;
...
...
@@ -218,9 +258,6 @@
}
}
}
::v-deep .el-input {
width: 100% !important;
}
.add-dialog {
.el-tree {
width: 100%;
...
...
@@ -276,6 +313,7 @@
}
}
}
.add-project-header {
margin-bottom: 10px;
padding-left: 24px;
...
...
src/views/castbehind/evaluate.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -99,13 +106,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getTzhpjList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
.
map
((
it
)
=>
{
...
...
@@ -126,11 +134,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
evaluateAdd
=
()
=>
{
router
.
push
(
"/evaluateAdd"
);
...
...
@@ -166,14 +174,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/castbehind/evaluateAdd.vue
View file @
d3e79971
...
...
@@ -291,7 +291,7 @@ const rcCgqyglId = ref(route.query.id || "");
// ========== 原有方法保留(移除手动新增/删除) ==========
// 获取项目列表
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
...
...
@@ -299,6 +299,7 @@ const getProjectData = () => {
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
...
...
src/views/castbehind/investmentCecovery.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -59,7 +60,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -97,13 +104,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getYyqtzhsList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
...
...
@@ -116,11 +124,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
investmentCecoveryAdd
=
()
=>
{
router
.
push
(
"/investmentCecoveryAdd"
);
...
...
@@ -156,14 +164,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/castbehind/investmentCecoveryAdd.vue
View file @
d3e79971
...
...
@@ -616,14 +616,16 @@ const projectList = ref([]);
const
rcCgqyglId
=
ref
(
route
.
query
.
id
||
""
);
// 获取项目列表
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
...
...
src/views/castbehind/runningPeriod.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,11 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -83,13 +88,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getYyqtzjcList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
...
...
@@ -102,11 +108,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
runningPeriodAdd
=
()
=>
{
router
.
push
(
"/runningPeriodAdd"
);
...
...
@@ -142,14 +148,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/castbehind/runningPeriodAdd.vue
View file @
d3e79971
...
...
@@ -221,7 +221,7 @@ const deleteyyqtzjcZxjcs = (index) => {
// ========== 通用方法 ==========
// 获取项目列表
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
...
...
@@ -229,6 +229,7 @@ const getProjectData = () => {
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
...
...
src/views/castbehind/turnover.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +59,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -98,13 +106,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getYjglList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
const
countValidRows
=
(
arr
)
=>
{
...
...
@@ -134,11 +143,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
turnoverAdd
=
()
=>
{
router
.
push
(
"/turnoverAdd"
);
...
...
@@ -174,14 +183,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/castbehind/turnoverAdd.vue
View file @
d3e79971
...
...
@@ -161,10 +161,16 @@ const qmyj = ref([
const
yyqtzjcZxjcsList
=
ref
([]);
// 获取项目列表数据
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
},
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
},
...
...
src/views/elseManage/cost.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -93,13 +100,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getCbglList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
const
countValidRows
=
(
arr
)
=>
{
...
...
@@ -128,11 +136,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
costAdd
=
()
=>
{
router
.
push
(
"/costAdd"
);
...
...
@@ -168,14 +176,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/elseManage/costAdd.vue
View file @
d3e79971
...
...
@@ -110,10 +110,16 @@ const rcCgqyglId = ref(route.query.id || "");
let
options
=
ref
();
// 获取项目列表数据
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
},
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
},
...
...
src/views/everydayPage/annual.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -113,13 +120,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getTzjhList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
...
...
@@ -132,11 +140,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
annualAdd
=
()
=>
{
router
.
push
(
"/annualAdd"
);
...
...
@@ -172,14 +180,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/everydayPage/annualAdd.vue
View file @
d3e79971
...
...
@@ -1345,10 +1345,16 @@ const fillAnnualPlanTable = (backfillData) => {
};
// ========== 业务方法:获取项目列表(通用) ==========
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
},
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
},
...
...
src/views/everydayPage/everyday.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -103,13 +110,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getXxbsList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
.
map
((
it
)
=>
{
...
...
@@ -127,11 +135,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
everydayAdd
=
()
=>
{
router
.
push
(
"/everydayAdd"
);
...
...
@@ -167,14 +175,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/everydayPage/informationConstruction.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -59,7 +60,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -96,13 +103,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getXxhjsList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
.
map
((
it
)
=>
{
...
...
@@ -120,11 +128,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
informationConstructionAdd
=
()
=>
{
router
.
push
(
"/informationConstructionAdd"
);
...
...
@@ -160,14 +168,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/everydayPage/investment.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -118,13 +125,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getTzghList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
.
map
((
it
)
=>
{
...
...
@@ -142,11 +150,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
investmentAdd
=
()
=>
{
router
.
push
(
"/investmentAdd"
);
...
...
@@ -182,14 +190,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/everydayPage/record.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -93,13 +100,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getTzdaglList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
.
map
((
it
)
=>
{
...
...
@@ -118,11 +126,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
recordAdd
=
()
=>
{
router
.
push
(
"/recordAdd"
);
...
...
@@ -158,14 +166,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/everydayPage/recordAdd.vue
View file @
d3e79971
...
...
@@ -139,7 +139,7 @@ const projectList = ref([]); // 项目下拉列表数据
// 接口请求:仅保留**实际用到的**,删除所有无用的合计/新增/删除方法
// 获取项目下拉列表(绑定所属项目)
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
...
...
@@ -147,6 +147,7 @@ const getProjectData = () => {
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
...
...
src/views/everydayPage/share.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -113,13 +120,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getCgqyglList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
...
...
@@ -132,11 +140,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
shareAdd
=
()
=>
{
router
.
push
(
"/shareAdd"
);
...
...
@@ -172,14 +180,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/everydayPage/shareAdd.vue
View file @
d3e79971
...
...
@@ -690,7 +690,7 @@ const deleteTzfhs = (index) => {
};
// 获取项目列表
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
...
...
@@ -698,6 +698,7 @@ const getProjectData = () => {
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
...
...
src/views/everydayPage/system.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -104,13 +111,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getTxjsList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
.
map
((
it
)
=>
{
...
...
@@ -128,11 +136,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
systemAdd
=
()
=>
{
router
.
push
(
"/systemAdd"
);
...
...
@@ -168,14 +176,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/everydayPage/vscouncil.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -113,13 +120,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getTwhglList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
.
map
((
it
)
=>
{
...
...
@@ -138,11 +146,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
vscouncilAdd
=
()
=>
{
router
.
push
(
"/vscouncilAdd"
);
...
...
@@ -178,14 +186,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/investingManage/addControl.vue
View file @
d3e79971
...
...
@@ -919,7 +919,7 @@ let loading = ref(false);
// 项目列表
let
projectList
=
ref
([]);
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
...
...
@@ -927,6 +927,7 @@ const getProjectData = () => {
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
;
...
...
src/views/investingManage/addRisk.vue
View file @
d3e79971
...
...
@@ -19,55 +19,87 @@
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"项目信息"
required
>
<el-select
v-model=
"formData.projectId"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-option
v-for=
"item in projectList"
:key=
"item.id"
:label=
"item.projectName"
:value=
"item.id"
<el-select
v-model=
"formData.projectId"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-option
v-for=
"item in projectList"
:key=
"item.id"
:label=
"item.projectName"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"项目名称"
>
<el-input
v-model=
"formData.projectName"
/>
<el-input
v-model=
"formData.projectName"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"直属企业"
>
<el-input
v-model=
"formData.zsqy"
/>
<el-input
v-model=
"formData.zsqy"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"项目公司全称"
>
<el-input
v-model=
"formData.xmgsqc"
/>
<el-input
v-model=
"formData.xmgsqc"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"境内/外"
>
<el-select
v-model=
"formData.jnw"
placeholder=
"请选择"
no-data-text=
"暂无数据"
<el-select
v-model=
"formData.jnw"
placeholder=
"请选择"
no-data-text=
"暂无数据"
@
change=
"changeJnw"
>
<el-option
v-for=
"item in jnwList"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
<el-option
v-for=
"item in jnwList"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"省(境内)/洲际(境外)"
:label-width=
"180"
>
<el-select
v-model=
"formData.sjnzjjw"
placeholder=
"请选择"
no-data-text=
"暂无数据"
<el-form-item
label=
"省(境内)/洲际(境外)"
:label-width=
"180"
>
<el-select
v-model=
"formData.sjnzjjw"
placeholder=
"请选择"
no-data-text=
"暂无数据"
@
change=
"changeSzj"
>
<el-option
v-for=
"item in szjList"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
<el-option
v-for=
"item in szjList"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"地市(境内)/国家(境外)"
:label-width=
"190"
>
<el-select
v-model=
"formData.dsjngjjw"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-option
v-for=
"item in dsgjList"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
<el-form-item
label=
"地市(境内)/国家(境外)"
:label-width=
"190"
>
<el-select
v-model=
"formData.dsjngjjw"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-option
v-for=
"item in dsgjList"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -86,30 +118,50 @@
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"项目类型"
label-width=
"180"
>
<el-select
v-model=
"formData.xmlx"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-option
v-for=
"item in xmlxList"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
<el-select
v-model=
"formData.xmlx"
placeholder=
"请选择"
no-data-text=
"暂无数据"
>
<el-option
v-for=
"item in xmlxList"
:key=
"item.key"
:label=
"item.name"
:value=
"item.key"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"本集团股比(%)"
label-width=
"190"
>
<el-input-number
v-model=
"formData.bjtgb"
:min=
"0"
:max=
"99999999999.99999999"
<el-input-number
v-model=
"formData.bjtgb"
:min=
"0"
:max=
"99999999999.99999999"
controls-position=
"right"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item
title=
"已发现或暴露的风险"
name=
"已发现或暴露的风险"
>
<el-collapse-item
title=
"已发现或暴露的风险"
name=
"已发现或暴露的风险"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"风险处置情况"
:label-width=
"100"
></el-form-item>
<el-form-item
label=
"风险处置情况"
:label-width=
"100"
></el-form-item>
<div
class=
"tab-handle"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"exportTableData"
:disabled=
"!fxczqkData.length"
>
导出
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"exportTableData"
:disabled=
"!fxczqkData.length"
>
导出
</el-button
>
<el-upload
ref=
"uploadRef"
class=
"upload-demo"
...
...
@@ -120,14 +172,27 @@
accept=
".xls, .xlsx"
>
<
template
#
trigger
>
<el-button
type=
"primary"
size=
"small"
style=
"margin: 0 12px;"
>
导入
</el-button>
<el-button
type=
"primary"
size=
"small"
style=
"margin: 0 12px"
>
导入
</el-button
>
</
template
>
</el-upload>
<el-button
type=
"primary"
size=
"small"
@
click=
"addFxczqk"
>
新增
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"addFxczqk"
>
新增
</el-button
>
</div>
<el-table
:data=
"fxczqkData"
style=
"width: 100%"
empty-text=
"暂无数据"
border
>
<el-table
:data=
"fxczqkData"
style=
"width: 100%"
empty-text=
"暂无数据"
border
>
<el-table-column
type=
"index"
width=
"60"
/>
<el-table-column
prop=
"nd"
label=
"年度"
width=
"260"
>
<
template
#
default=
"scope"
>
...
...
@@ -139,42 +204,89 @@
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"mbfj"
label=
"目标分解"
width=
"240"
>
<el-table-column
prop=
"mbfj"
label=
"目标分解"
width=
"240"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.mbfj"
type=
"textarea"
/>
<el-input
v-model=
"scope.row.mbfj"
type=
"textarea"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"jzqk"
label=
"进展情况"
width=
"240"
>
<el-table-column
prop=
"jzqk"
label=
"进展情况"
width=
"240"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.jzqk"
type=
"textarea"
/>
<el-input
v-model=
"scope.row.jzqk"
type=
"textarea"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"fxdj"
label=
"风险等级"
width=
"240"
>
<el-table-column
prop=
"fxdj"
label=
"风险等级"
width=
"240"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.fxdj"
/>
<el-input
v-model=
"scope.row.fxdj"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"fxfl"
label=
"风险分类"
width=
"240"
>
<el-table-column
prop=
"fxfl"
label=
"风险分类"
width=
"240"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.fxfl"
/>
<el-input
v-model=
"scope.row.fxfl"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"fxgk"
label=
"风险概况"
width=
"240"
>
<el-table-column
prop=
"fxgk"
label=
"风险概况"
width=
"240"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.fxgk"
type=
"textarea"
/>
<el-input
v-model=
"scope.row.fxgk"
type=
"textarea"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"kzcs"
label=
"控制措施"
width=
"240"
>
<el-table-column
prop=
"kzcs"
label=
"控制措施"
width=
"240"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.kzcs"
type=
"textarea"
/>
<el-input
v-model=
"scope.row.kzcs"
type=
"textarea"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"czjz"
label=
"处置进展"
width=
"240"
>
<el-table-column
prop=
"czjz"
label=
"处置进展"
width=
"240"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.czjz"
type=
"textarea"
/>
<el-input
v-model=
"scope.row.czjz"
type=
"textarea"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"yjzgwcsj"
label=
"预计整改完成时间"
width=
"260"
>
<el-table-column
prop=
"yjzgwcsj"
label=
"预计整改完成时间"
width=
"260"
>
<
template
#
default=
"scope"
>
<el-date-picker
v-model=
"scope.row.yjzgwcsj"
...
...
@@ -184,32 +296,56 @@
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"fxsjje"
label=
"风险涉及金额"
width=
"260"
>
<el-table-column
prop=
"fxsjje"
label=
"风险涉及金额"
width=
"260"
>
<
template
#
default=
"scope"
>
<el-input-number
v-model=
"scope.row.fxsjje"
:min=
"0"
:max=
"99999999999.99999999"
<el-input-number
v-model=
"scope.row.fxsjje"
:min=
"0"
:max=
"99999999999.99999999"
controls-position=
"right"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"cxgl"
label=
"出险概率"
width=
"240"
>
<el-table-column
prop=
"cxgl"
label=
"出险概率"
width=
"240"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.cxgl"
/>
<el-input
v-model=
"scope.row.cxgl"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"fxfxfs"
label=
"风险发现方式"
width=
"240"
>
<el-table-column
prop=
"fxfxfs"
label=
"风险发现方式"
width=
"240"
>
<
template
#
default=
"scope"
>
<el-input
v-model=
"scope.row.fxfxfs"
/>
<el-input
v-model=
"scope.row.fxfxfs"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"60"
fixed=
"right"
>
<
template
#
default=
"scope"
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteFxczqk(scope.$index)"
>
删除
</el-button>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteFxczqk(scope.$index)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"可能发生的潜在风险"
label-width=
"140"
>
<el-form-item
label=
"可能发生的潜在风险"
label-width=
"140"
>
<el-input
v-model=
"formData.knfsqzfx"
type=
"textarea"
/>
</el-form-item>
</el-col>
...
...
@@ -242,31 +378,32 @@
</div>
</template>
<
script
setup
>
import
{
reactive
,
ref
,
onMounted
,
getCurrentInstance
,
h
}
from
"vue"
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
{
getTableFileData
,
exportTableFile
}
from
"../../common/tableFileHandle"
;
const
userStore
=
useUserStore
();
const
router
=
useRouter
();
const
route
=
useRoute
();
const
{
proxy
}
=
getCurrentInstance
();
let
token
=
ref
(
""
);
token
.
value
=
userStore
.
authToken
||
sessionStorage
.
getItem
(
"authToken"
)
||
""
;
import
{
reactive
,
ref
,
onMounted
,
getCurrentInstance
,
h
}
from
"vue"
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
{
getTableFileData
,
exportTableFile
,
}
from
"../../common/tableFileHandle"
;
const
userStore
=
useUserStore
();
const
router
=
useRouter
();
const
route
=
useRoute
();
const
{
proxy
}
=
getCurrentInstance
();
let
token
=
ref
(
""
);
token
.
value
=
userStore
.
authToken
||
sessionStorage
.
getItem
(
"authToken"
)
||
""
;
const
activeCollapse
=
reactive
([
"基本信息"
,
"已发现或暴露的风险"
]);
let
formData
=
reactive
({});
let
loading
=
ref
(
false
);
let
isPreview
=
!!
route
.
query
.
isPreview
;
let
riskId
=
route
.
query
.
riskId
;
const
getRiskInfo
=
()
=>
{
const
activeCollapse
=
reactive
([
"基本信息"
,
"已发现或暴露的风险"
]);
let
formData
=
reactive
({});
let
loading
=
ref
(
false
);
let
isPreview
=
!!
route
.
query
.
isPreview
;
let
riskId
=
route
.
query
.
riskId
;
const
getRiskInfo
=
()
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getZdfxInfo"
,
data
:
{
id
:
riskId
id
:
riskId
,
},
callback
:
(
res
)
=>
{
loading
.
value
=
false
;
...
...
@@ -277,37 +414,41 @@
dsjngjjw
:
res
.
dsjngjjw
?
res
.
dsjngjjw
.
toString
()
:
undefined
,
xmlx
:
res
.
xmlx
?
res
.
xmlx
.
toString
()
:
undefined
,
});
szjList
.
value
=
jnwList
.
filter
(
item
=>
item
.
key
==
res
.
jnw
)[
0
]?.
children
||
[];
dsgjList
.
value
=
szjList
.
value
.
filter
(
item
=>
item
.
key
==
res
.
sjnzjjw
)[
0
]?.
children
||
[];
szjList
.
value
=
jnwList
.
filter
((
item
)
=>
item
.
key
==
res
.
jnw
)[
0
]?.
children
||
[];
dsgjList
.
value
=
szjList
.
value
.
filter
((
item
)
=>
item
.
key
==
res
.
sjnzjjw
)[
0
]?.
children
||
[];
Object
.
assign
(
fxczqkData
.
value
,
res
.
zdfxczs
);
}
},
});
};
// 项目列表
let
projectList
=
ref
([]);
const
getProjectData
=
(
)
=>
{
};
// 项目列表
let
projectList
=
ref
([]);
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
;
}
})
};
let
jnwList
=
reactive
([]);
// 境内/外 // 级联
let
szjList
=
ref
([]);
// 省(境内)/洲际(境外) // 级联
let
dsgjList
=
ref
([]);
// 地市(境内)/国家(境外) // 级联
let
tzbkList
=
ref
([]);
// 投资板块
let
tzbkProps
=
{
label
:
"name"
};
let
xmlxList
=
ref
([]);
//项目类型
onMounted
(()
=>
{
},
});
};
let
jnwList
=
reactive
([]);
// 境内/外 // 级联
let
szjList
=
ref
([]);
// 省(境内)/洲际(境外) // 级联
let
dsgjList
=
ref
([]);
// 地市(境内)/国家(境外) // 级联
let
tzbkList
=
ref
([]);
// 投资板块
let
tzbkProps
=
{
label
:
"name"
,
};
let
xmlxList
=
ref
([]);
//项目类型
onMounted
(()
=>
{
getProjectData
();
let
resourceData
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
jnwList
=
resourceData
.
dqlx
;
...
...
@@ -316,103 +457,102 @@
if
(
riskId
)
{
getRiskInfo
();
}
});
const
changeJnw
=
(
val
)
=>
{
});
const
changeJnw
=
(
val
)
=>
{
if
(
val
||
val
===
0
)
{
let
selectData
=
jnwList
.
filter
(
item
=>
item
.
key
==
val
);
szjList
.
value
=
selectData
[
0
]
&&
selectData
[
0
].
children
||
[];
let
selectData
=
jnwList
.
filter
((
item
)
=>
item
.
key
==
val
);
szjList
.
value
=
(
selectData
[
0
]
&&
selectData
[
0
].
children
)
||
[];
dsgjList
.
value
=
[];
delete
formData
.
sjnzjjw
;
delete
formData
.
dsjngjjw
;
}
};
const
changeSzj
=
(
val
)
=>
{
};
const
changeSzj
=
(
val
)
=>
{
if
(
val
||
val
===
0
)
{
let
selectData
=
szjList
.
value
.
filter
(
item
=>
item
.
key
==
val
);
dsgjList
.
value
=
selectData
[
0
]
&&
selectData
[
0
].
children
||
[];
let
selectData
=
szjList
.
value
.
filter
((
item
)
=>
item
.
key
==
val
);
dsgjList
.
value
=
(
selectData
[
0
]
&&
selectData
[
0
].
children
)
||
[];
delete
formData
.
dsjngjjw
;
}
}
// 风险处置情况
let
fxczqkData
=
ref
([]);
const
addFxczqk
=
()
=>
{
};
// 风险处置情况
let
fxczqkData
=
ref
([]);
const
addFxczqk
=
()
=>
{
fxczqkData
.
value
.
push
({});
};
const
deleteFxczqk
=
(
index
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
'确认'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
};
const
deleteFxczqk
=
(
index
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
}).
then
(()
=>
{
fxczqkData
.
value
.
splice
(
index
,
1
);
})
}
const
tableColumns
=
[
});
};
const
tableColumns
=
[
{
prop
:
"nd"
,
label
:
"年度"
label
:
"年度"
,
},
{
prop
:
"mbfj"
,
label
:
"目标分解"
label
:
"目标分解"
,
},
{
prop
:
"jzqk"
,
label
:
"进展情况"
label
:
"进展情况"
,
},
{
prop
:
"fxdj"
,
label
:
"风险等级"
label
:
"风险等级"
,
},
{
prop
:
"fxfl"
,
label
:
"风险分类"
label
:
"风险分类"
,
},
{
prop
:
"fxgk"
,
label
:
"风险概况"
label
:
"风险概况"
,
},
{
prop
:
"kzcs"
,
label
:
"控制措施"
label
:
"控制措施"
,
},
{
prop
:
"czjz"
,
label
:
"处置进展"
label
:
"处置进展"
,
},
{
prop
:
"yjzgwcsj"
,
label
:
"预计整改完成时间"
label
:
"预计整改完成时间"
,
},
{
prop
:
"fxsjje"
,
label
:
"风险涉及金额"
,
type
:
"number"
type
:
"number"
,
},
{
prop
:
"cxgl"
,
label
:
"出险概率"
label
:
"出险概率"
,
},
{
prop
:
"fxfxfs"
,
label
:
"风险发现方式"
}
];
label
:
"风险发现方式"
,
},
];
const
importTableData
=
(
file
)
=>
{
getTableFileData
(
file
,
tableColumns
).
then
(
res
=>
{
const
importTableData
=
(
file
)
=>
{
getTableFileData
(
file
,
tableColumns
).
then
((
res
)
=>
{
fxczqkData
.
value
=
fxczqkData
.
value
.
concat
(
res
);
});
};
const
exportTableData
=
()
=>
{
exportTableFile
(
fxczqkData
.
value
,
tableColumns
,
""
,
"风险处置情况"
);
};
}
const
exportTableData
=
()
=>
{
exportTableFile
(
fxczqkData
.
value
,
tableColumns
,
""
,
"风险处置情况"
)
};
const
backClick
=
()
=>
{
router
.
back
(
-
1
)
}
const
saveClick
=
()
=>
{
const
backClick
=
()
=>
{
router
.
back
(
-
1
);
};
const
saveClick
=
()
=>
{
if
(
!
formData
.
projectId
)
{
return
ElMessage
.
warning
(
"请选择项目信息"
);
}
...
...
@@ -421,17 +561,17 @@
url
:
"/api/project/"
+
url
,
data
:
{
...
formData
,
zdfxczs
:
fxczqkData
.
value
zdfxczs
:
fxczqkData
.
value
,
},
callback
:
(
data
)
=>
{
router
.
back
(
-
1
)
}
router
.
back
(
-
1
);
},
});
}
};
</
script
>
<
style
lang=
"less"
>
@import "@/styles/manage.less";
.add-project-header
{
@import "@/styles/manage.less";
.add-project-header
{
margin-bottom: 10px;
}
}
</
style
>
src/views/investingManage/addStatement.vue
View file @
d3e79971
...
...
@@ -582,7 +582,7 @@ const getFullPathById = (id) => {
};
// 项目列表
let
projectList
=
ref
([]);
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
...
...
@@ -590,6 +590,7 @@ const getProjectData = () => {
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
;
...
...
src/views/investingManage/bigIssues.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -109,13 +116,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getZdsxspList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
.
map
((
it
)
=>
{
...
...
@@ -137,11 +145,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
bigIssuesAdd
=
()
=>
{
router
.
push
(
"/bigIssuesAdd"
);
...
...
@@ -177,14 +185,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/investingManage/bigIssuesAdd.vue
View file @
d3e79971
...
...
@@ -172,7 +172,7 @@ const rcCgqyglId = ref(route.query.id || "");
// ========== 通用方法 ==========
// 获取项目列表
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
...
...
@@ -180,6 +180,7 @@ const getProjectData = () => {
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
...
...
src/views/investingManage/construction.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -83,13 +90,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getJsqtzjcList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
...
...
@@ -102,11 +110,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
constructionAdd
=
()
=>
{
router
.
push
(
"/constructionAdd"
);
...
...
@@ -142,14 +150,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/investingManage/constructionAdd.vue
View file @
d3e79971
...
...
@@ -307,7 +307,7 @@ const deleteJsqtzjcZxjcs = (index) => {
// ========== 通用方法 ==========
// 获取项目列表
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
...
...
@@ -315,6 +315,7 @@ const getProjectData = () => {
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
...
...
src/views/investingManage/constructionTime.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -59,7 +60,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -97,13 +104,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getJsqtzhsList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
...
...
@@ -116,11 +124,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
constructionTimeAdd
=
()
=>
{
router
.
push
(
"/constructionTimeAdd"
);
...
...
@@ -156,14 +164,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/investingManage/constructionTimeAdd.vue
View file @
d3e79971
...
...
@@ -616,7 +616,7 @@ const projectList = ref([]);
const
rcCgqyglId
=
ref
(
route
.
query
.
id
||
""
);
// 获取项目列表
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
...
...
@@ -624,6 +624,7 @@ const getProjectData = () => {
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
...
...
src/views/investingManage/decision.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -113,13 +120,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getTzjhList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
...
...
@@ -132,11 +140,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
annualAdd
=
()
=>
{
router
.
push
(
"/decisionAdd"
);
...
...
@@ -172,14 +180,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/investingManage/decisionAdd.vue
View file @
d3e79971
...
...
@@ -1767,10 +1767,16 @@ const formData = reactive({
});
// ========== 业务方法:获取项目列表 ==========
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
},
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
},
...
...
src/views/investingManage/majorRisk.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -24,9 +25,19 @@
@
current-page-change=
"handleCurrentPageChange"
>
<template
#
operations=
"
{ row, index }">
<el-button
link
type=
"primary"
size=
"small"
@
click=
"previewRisk(row)"
>
查看
</el-button>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"editRisk(row)"
>
编辑
</el-button>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteRisk(row)"
>
删除
</el-button>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"previewRisk(row)"
>
查看
</el-button
>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"editRisk(row)"
>
编辑
</el-button
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteRisk(row)"
>
删除
</el-button
>
</
template
>
</common-table>
</div>
...
...
@@ -35,25 +46,30 @@
</template>
<
script
setup
>
import
{
ref
,
onMounted
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
{
ref
,
onMounted
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
{
prop
:
"projectName"
,
label
:
"项目名称"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"zsqy"
,
label
:
"直属企业"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"operations"
,
...
...
@@ -61,81 +77,84 @@
width
:
170
,
slot
:
"operations"
,
fixed
:
"right"
,
align
:
"center"
}
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getRiskData
=
(
)
=>
{
align
:
"center"
,
},
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getProjectData
=
(
params
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getZdfxList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
total
.
value
=
data
.
count
;
loading
.
value
=
false
;
}
})
};
// 分页
const
handleSizeChange
=
(
size
)
=>
{
},
});
};
// 分页
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
getRisk
Data
();
}
const
handleCurrentPageChange
=
(
page
)
=>
{
getProject
Data
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
getRisk
Data
();
}
const
addRisk
=
()
=>
{
getProject
Data
();
};
const
addRisk
=
()
=>
{
router
.
push
(
"/addRisk"
);
};
const
editRisk
=
(
item
)
=>
{
};
const
editRisk
=
(
item
)
=>
{
router
.
push
({
name
:
"addRisk"
,
query
:
{
riskId
:
item
.
id
}
riskId
:
item
.
id
,
},
});
};
const
previewRisk
=
(
item
)
=>
{
};
const
previewRisk
=
(
item
)
=>
{
router
.
push
({
name
:
"addRisk"
,
query
:
{
isPreview
:
true
,
riskId
:
item
.
id
}
riskId
:
item
.
id
,
},
});
};
const
deleteRisk
=
(
item
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
}
const
deleteRisk
=
(
item
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,{
confirmButtonText
:
'确认'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}).
then
(()
=>
{
.
then
(()
=>
{
proxy
.
$post
({
url
:
"/api/project/deleteZdfx"
,
data
:
{
id
:
item
.
id
id
:
item
.
id
,
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
getRiskData
();
}
})
}).
catch
(()
=>
{})
}
onMounted
(()
=>
{
getRiskData
();
getProjectData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
getProjectData
();
});
</
script
>
<
style
lang=
"less"
scoped
>
@import "@/styles/manage.less";
@import "@/styles/manage.less";
</
style
>
src/views/investingManage/quit.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -57,7 +58,13 @@ import { ref, onMounted, getCurrentInstance } from "vue";
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -109,13 +116,14 @@ let total = ref(0);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
get
StatementData
=
(
)
=>
{
const
get
ProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getXmtcList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
...
...
@@ -128,11 +136,11 @@ const getStatementData = () => {
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
get
Statemen
tData
();
get
Projec
tData
();
};
const
annualAdd
=
()
=>
{
router
.
push
(
"/quitAdd"
);
...
...
@@ -168,14 +176,14 @@ const deleteStatement = (item) => {
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
get
Statemen
tData
();
get
Projec
tData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
get
Statemen
tData
();
get
Projec
tData
();
});
</
script
>
...
...
src/views/investingManage/quitAdd.vue
View file @
d3e79971
...
...
@@ -993,10 +993,16 @@ const handleFinancialIndexChange = (field) => {
};
// ========== 业务方法:获取项目列表 ==========
const
getProjectData
=
()
=>
{
const
getProjectData
=
(
params
=
{}
)
=>
{
proxy
.
$post
({
url
:
"/api/project/listProject"
,
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
},
data
:
{
page
:
1
,
pagesize
:
1000
,
attributes
:
[],
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
projectList
.
value
=
data
.
rows
||
[];
},
...
...
src/views/investingManage/targetControl.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -24,9 +25,27 @@
@
current-page-change=
"handleCurrentPageChange"
>
<template
#
operations=
"
{ row, index }">
<el-button
link
type=
"primary"
size=
"small"
@
click=
"previewControl(row)"
>
查看
</el-button>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"editControl(row)"
>
编辑
</el-button>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteControl(row)"
>
删除
</el-button>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"previewControl(row)"
>
查看
</el-button
>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"editControl(row)"
>
编辑
</el-button
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteControl(row)"
>
删除
</el-button
>
</
template
>
</common-table>
</div>
...
...
@@ -34,30 +53,37 @@
</div>
</template>
<
script
setup
>
import
{
ref
,
reactive
,
onMounted
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
{
ref
,
reactive
,
onMounted
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
const
router
=
useRouter
(
);
const
{
proxy
}
=
getCurrentInstance
()
;
getProjectData
(
formData
);
}
;
let
tableData
=
ref
([]);
let
jcdwList
=
reactive
([]);
let
tableColumns
=
ref
([
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
let
tableData
=
ref
([]);
let
jcdwList
=
reactive
([]);
let
tableColumns
=
ref
([
{
prop
:
"projectName"
,
label
:
"项目名称"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"jcdw"
,
label
:
"决策单位"
,
showOverflowTooltip
:
true
,
formatter
:
(
row
)
=>
{
let
data
=
jcdwList
.
filter
(
item
=>
item
.
key
===
row
.
jcdw
)[
0
]
let
data
=
jcdwList
.
filter
((
item
)
=>
item
.
key
===
row
.
jcdw
)[
0
];
return
row
.
jcdw
&&
data
?
data
.
name
:
row
.
jcdw
;
}
},
},
{
prop
:
"operations"
,
...
...
@@ -65,83 +91,86 @@
width
:
170
,
slot
:
"operations"
,
fixed
:
"right"
,
align
:
"center"
}
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getControlData
=
(
)
=>
{
align
:
"center"
,
},
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getProjectData
=
(
params
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getTzkzList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
total
.
value
=
data
.
count
;
loading
.
value
=
false
;
}
})
};
// 分页
const
handleSizeChange
=
(
size
)
=>
{
},
});
};
// 分页
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
getControl
Data
();
}
const
handleCurrentPageChange
=
(
page
)
=>
{
getProject
Data
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
getControl
Data
();
}
const
addControl
=
()
=>
{
getProject
Data
();
};
const
addControl
=
()
=>
{
router
.
push
(
"/addControl"
);
};
const
editControl
=
(
item
)
=>
{
};
const
editControl
=
(
item
)
=>
{
router
.
push
({
name
:
"addControl"
,
query
:
{
controlId
:
item
.
id
}
controlId
:
item
.
id
,
},
});
};
const
previewControl
=
(
item
)
=>
{
};
const
previewControl
=
(
item
)
=>
{
router
.
push
({
name
:
"addControl"
,
query
:
{
isPreview
:
true
,
controlId
:
item
.
id
}
controlId
:
item
.
id
,
},
});
};
const
deleteControl
=
(
item
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
}
const
deleteControl
=
(
item
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,{
confirmButtonText
:
'确认'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}).
then
(()
=>
{
.
then
(()
=>
{
proxy
.
$post
({
url
:
"/api/project/deleteTzkz"
,
data
:
{
id
:
item
.
id
id
:
item
.
id
,
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
getControlData
();
}
getProjectData
();
},
});
})
}).
catch
(()
=>
{})
}
onMounted
(()
=>
{
getControl
Data
();
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
getProject
Data
();
let
resourceData
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"resourceData"
));
jcdwList
=
resourceData
.
jcdw
;
})
});
</
script
>
<
style
scoped
lang=
"less"
>
@import "@/styles/manage.less";
@import "@/styles/manage.less";
</
style
>
src/views/investingManage/targetLiabilityStatement.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -24,9 +25,27 @@
@
current-page-change=
"handleCurrentPageChange"
>
<template
#
operations=
"
{ row, index }">
<el-button
link
type=
"primary"
size=
"small"
@
click=
"previewStatement(row)"
>
查看
</el-button>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"editStatement(row)"
>
编辑
</el-button>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteStatement(row)"
>
删除
</el-button>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"previewStatement(row)"
>
查看
</el-button
>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"editStatement(row)"
>
编辑
</el-button
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteStatement(row)"
>
删除
</el-button
>
</
template
>
</common-table>
</div>
...
...
@@ -35,42 +54,48 @@
</template>
<
script
setup
>
import
{
ref
,
onMounted
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
{
ref
,
onMounted
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
{
prop
:
"projectName"
,
label
:
"项目名称"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"tzzt"
,
label
:
"投资主体"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"xmdd"
,
label
:
"项目地点"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"xmkgrq"
,
label
:
"项目开工日期"
,
showOverflowTooltip
:
true
,
width
:
170
width
:
170
,
},
{
prop
:
"xmssqx"
,
label
:
"项目实施期限(年)"
,
showOverflowTooltip
:
true
,
width
:
120
width
:
120
,
},
{
prop
:
"operations"
,
...
...
@@ -78,82 +103,85 @@
width
:
170
,
slot
:
"operations"
,
fixed
:
"right"
,
align
:
"center"
}
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getStatementData
=
(
)
=>
{
align
:
"center"
,
},
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getProjectData
=
(
params
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/getTzmbzrsList"
,
data
:
{
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
pagesize
:
pageSize
.
value
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
total
.
value
=
data
.
count
;
loading
.
value
=
false
;
}
})
};
// 分页
const
handleSizeChange
=
(
size
)
=>
{
},
});
};
// 分页
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
getStatemen
tData
();
}
const
handleCurrentPageChange
=
(
page
)
=>
{
getProjec
tData
();
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
getStatemen
tData
();
}
const
addStatement
=
()
=>
{
getProjec
tData
();
};
const
addStatement
=
()
=>
{
router
.
push
(
"/addStatement"
);
};
const
editStatement
=
(
item
)
=>
{
};
const
editStatement
=
(
item
)
=>
{
router
.
push
({
name
:
"addStatement"
,
query
:
{
statementId
:
item
.
id
}
statementId
:
item
.
id
,
},
});
};
const
previewStatement
=
(
item
)
=>
{
};
const
previewStatement
=
(
item
)
=>
{
router
.
push
({
name
:
"addStatement"
,
query
:
{
isPreview
:
true
,
statementId
:
item
.
id
}
statementId
:
item
.
id
,
},
});
};
const
deleteStatement
=
(
item
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
}
const
deleteStatement
=
(
item
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,{
confirmButtonText
:
'确认'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}).
then
(()
=>
{
.
then
(()
=>
{
proxy
.
$post
({
url
:
"/api/project/deleteTzmbzrs"
,
data
:
{
id
:
item
.
id
id
:
item
.
id
,
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
getStatementData
();
}
})
}).
catch
(()
=>
{})
}
onMounted
(()
=>
{
getStatementData
();
getProjectData
();
},
});
})
.
catch
(()
=>
{});
};
onMounted
(()
=>
{
getProjectData
();
});
</
script
>
<
style
scoped
lang=
"less"
>
@import "@/styles/manage.less";
@import "@/styles/manage.less";
</
style
>
src/views/projectManage/projectAllPage.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<!-- 搜索表单区域 -->
<div
class=
"manage-search"
>
<search-form
v-model=
"searchForm"
:items=
"searchItems"
@
search=
"handleSearch"
@
reset=
"handleReset"
@
field-clear=
"handleFieldClear"
/>
</div>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -95,11 +85,13 @@ let tableColumns = ref([
prop
:
"projectName"
,
label
:
"项目名称"
,
showOverflowTooltip
:
true
,
align
:
"center"
,
},
{
prop
:
"projectCode"
,
label
:
"项目编号"
,
showOverflowTooltip
:
true
,
align
:
"center"
,
},
{
prop
:
"projectLzType"
,
...
...
@@ -205,86 +197,12 @@ let pageSize = ref(10);
// ========== 搜索表单相关 ==========
const
searchForm
=
ref
({});
// 搜索字段配置
const
searchItems
=
ref
([
{
type
:
"input"
,
label
:
"项目名称"
,
prop
:
"projectName"
,
placeholder
:
"请输入项目名称"
,
clearable
:
true
,
span
:
6
,
},
{
type
:
"input"
,
label
:
"项目编号"
,
prop
:
"projectCode"
,
placeholder
:
"请输入项目编号"
,
clearable
:
true
,
span
:
6
,
},
{
type
:
"input"
,
label
:
"直属企业"
,
prop
:
"zsqy"
,
placeholder
:
"请输入直属企业"
,
clearable
:
true
,
span
:
6
,
},
{
type
:
"input"
,
label
:
"管理主体"
,
prop
:
"glzt"
,
placeholder
:
"请输入管理主体"
,
clearable
:
true
,
span
:
6
,
},
{
type
:
"input"
,
label
:
"联系人"
,
prop
:
"lxr"
,
placeholder
:
"请输入联系人"
,
clearable
:
true
,
span
:
6
,
},
{
type
:
"dict-select"
,
label
:
"项目阶段"
,
prop
:
"xmjd"
,
dictName
:
"xmjd"
,
placeholder
:
"请选择项目阶段"
,
span
:
6
,
},
{
type
:
"dict-select"
,
label
:
"项目区域"
,
prop
:
"xmqy"
,
dictName
:
"xmqy"
,
placeholder
:
"请选择项目区域"
,
span
:
6
,
},
]);
// 搜索处理
const
handleSearch
=
(
formData
)
=>
{
console
.
log
(
"搜索参数:"
,
formData
);
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
// 重置处理
const
handleReset
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
();
};
// 单个字段清空处理
const
handleFieldClear
=
(
prop
,
formData
)
=>
{
console
.
log
(
"字段清空:"
,
prop
,
formData
);
};
// ========== 获取列表数据 ==========
const
getProjectData
=
(
params
=
{})
=>
{
loading
.
value
=
true
;
...
...
@@ -293,7 +211,9 @@ const getProjectData = (params = {}) => {
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
attributes
:
[],
...
params
,
menuType
:
"xmdak"
,
...
params
,
};
// 处理搜索条件
...
...
src/views/projectManage/projectArgument.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
></div>
...
...
@@ -22,10 +23,21 @@
@
current-page-change=
"handleCurrentPageChange"
>
<template
#
operations=
"
{ row, index }">
<el-button
link
type=
"primary"
size=
"small"
@
click=
"fillProject(row)"
>
继续填报
</el-button>
<el-button
link
type=
"primary"
size=
"small"
:loading=
"row.loading"
@
click=
"fillProject(row)"
>
发起决策审批
</el-button>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"fillProject(row)"
>
继续填报
</el-button
>
<el-button
link
type=
"primary"
size=
"small"
:loading=
"row.loading"
@
click=
"fillProject(row)"
>
发起决策审批
</el-button
>
</
template
>
</common-table>
</div>
...
...
@@ -34,25 +46,31 @@
</template>
<
script
setup
>
import
{
reactive
,
ref
,
onMounted
,
computed
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
{
reactive
,
ref
,
onMounted
,
computed
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
{
prop
:
"projectName"
,
label
:
"项目名称"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"projectCode"
,
label
:
"项目编号"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"projectLzType"
,
...
...
@@ -60,10 +78,20 @@
width
:
120
,
align
:
"center"
,
formatter
:
(
data
)
=>
{
return
data
.
projectLzType
===
"1"
?
"待立项"
:
data
.
projectLzType
===
"3"
?
"立项审批中"
:
data
.
projectLzType
===
"5"
?
"已立项"
:
data
.
projectLzType
===
"7"
?
"决策填报中"
:
data
.
projectLzType
===
"8"
?
"决策审批中"
:
data
.
projectLzType
===
"9"
?
"已决策"
:
"待立项"
}
return
data
.
projectLzType
===
"1"
?
"待立项"
:
data
.
projectLzType
===
"3"
?
"立项审批中"
:
data
.
projectLzType
===
"5"
?
"已立项"
:
data
.
projectLzType
===
"7"
?
"决策填报中"
:
data
.
projectLzType
===
"8"
?
"决策审批中"
:
data
.
projectLzType
===
"9"
?
"已决策"
:
"待立项"
;
},
},
{
prop
:
"operations"
,
...
...
@@ -71,15 +99,15 @@
width
:
200
,
slot
:
"operations"
,
fixed
:
"right"
,
align
:
"center"
}
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getProjectData
=
(
)
=>
{
align
:
"center"
,
},
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/listProject"
,
...
...
@@ -87,52 +115,53 @@
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
attributes
:
[],
menuType
:
"xmlz"
menuType
:
"xmlz"
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
total
.
value
=
data
.
count
;
loading
.
value
=
false
;
}
})
};
},
});
};
onMounted
(()
=>
{
onMounted
(()
=>
{
getProjectData
();
})
// 分页
const
handleSizeChange
=
(
size
)
=>
{
});
// 分页
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
getProjectData
();
}
const
handleCurrentPageChange
=
(
page
)
=>
{
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
getProjectData
();
}
const
fillProject
=
(
item
)
=>
{
};
const
fillProject
=
(
item
)
=>
{
router
.
push
({
name
:
"addProject"
,
query
:
{
projectId
:
item
.
id
}
projectId
:
item
.
id
,
},
});
};
const
approvalProject
=
(
item
)
=>
{
};
const
approvalProject
=
(
item
)
=>
{
item
.
loading
=
true
;
proxy
.
$post
({
url
:
"/api/project/startJuece"
,
data
:
{
id
:
item
.
id
id
:
item
.
id
,
},
callback
:
(
data
)
=>
{
item
.
loading
=
false
;
getProjectData
();
}
})
};
},
});
};
</
script
>
<
style
scoped
lang=
"less"
>
@import "@/styles/manage.less";
@import "@/styles/manage.less";
</
style
>
src/views/projectManage/projectDecision.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
></div>
...
...
@@ -22,9 +23,16 @@
@
current-page-change=
"handleCurrentPageChange"
>
<template
#
operations=
"
{ row, index }">
<el-button
link
type=
"primary"
size=
"small"
:loading=
"row.loading"
@
click=
"previewProject(row)"
>
{{
canAudit
&&
row
.
projectLzType
==
8
?
"审批"
:
"查看"
}}
</el-button>
<el-button
link
type=
"primary"
size=
"small"
:loading=
"row.loading"
@
click=
"previewProject(row)"
>
{{
canAudit
&&
row
.
projectLzType
==
8
?
"审批"
:
"查看"
}}
</el-button
>
</
template
>
</common-table>
</div>
...
...
@@ -33,35 +41,45 @@
</template>
<
script
setup
>
import
{
reactive
,
ref
,
onMounted
,
computed
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
{
reactive
,
ref
,
onMounted
,
computed
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
// 是否是审核角色
const
userStore
=
useUserStore
();
const
userInfo
=
userStore
.
userInfo
||
(
sessionStorage
.
getItem
(
"userInfo"
)
&&
JSON
.
parse
(
sessionStorage
.
getItem
(
"userInfo"
)))
||
{};
let
canAudit
=
ref
(
false
);
userInfo
.
roles
.
map
(
item
=>
{
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
// 是否是审核角色
const
userStore
=
useUserStore
();
const
userInfo
=
userStore
.
userInfo
||
(
sessionStorage
.
getItem
(
"userInfo"
)
&&
JSON
.
parse
(
sessionStorage
.
getItem
(
"userInfo"
)))
||
{};
let
canAudit
=
ref
(
false
);
userInfo
.
roles
.
map
((
item
)
=>
{
if
([
"xmlx_sp"
,
"xmjc_sp"
].
includes
(
item
.
key
))
{
canAudit
.
value
=
true
;
}
});
});
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
{
prop
:
"projectName"
,
label
:
"项目名称"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"projectCode"
,
label
:
"项目编号"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"projectLzType"
,
...
...
@@ -69,10 +87,20 @@
width
:
120
,
align
:
"center"
,
formatter
:
(
data
)
=>
{
return
data
.
projectLzType
===
"1"
?
"待立项"
:
data
.
projectLzType
===
"3"
?
"立项审批中"
:
data
.
projectLzType
===
"5"
?
"已立项"
:
data
.
projectLzType
===
"7"
?
"决策填报中"
:
data
.
projectLzType
===
"8"
?
"决策审批中"
:
data
.
projectLzType
===
"9"
?
"已决策"
:
"待立项"
}
return
data
.
projectLzType
===
"1"
?
"待立项"
:
data
.
projectLzType
===
"3"
?
"立项审批中"
:
data
.
projectLzType
===
"5"
?
"已立项"
:
data
.
projectLzType
===
"7"
?
"决策填报中"
:
data
.
projectLzType
===
"8"
?
"决策审批中"
:
data
.
projectLzType
===
"9"
?
"已决策"
:
"待立项"
;
},
},
{
prop
:
"operations"
,
...
...
@@ -80,16 +108,16 @@
width
:
160
,
slot
:
"operations"
,
fixed
:
"right"
,
align
:
"center"
}
]);
align
:
"center"
,
},
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getProjectData
=
(
)
=>
{
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/listProject"
,
...
...
@@ -97,39 +125,40 @@
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
attributes
:
[],
menuType
:
"xmjc"
menuType
:
"xmjc"
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
total
.
value
=
data
.
count
;
loading
.
value
=
false
;
}
})
};
onMounted
(()
=>
{
},
});
};
onMounted
(()
=>
{
getProjectData
();
})
// 分页
const
handleSizeChange
=
(
size
)
=>
{
});
// 分页
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
getProjectData
();
}
const
handleCurrentPageChange
=
(
page
)
=>
{
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
getProjectData
();
}
const
previewProject
=
(
item
)
=>
{
};
const
previewProject
=
(
item
)
=>
{
router
.
push
({
name
:
"addProject"
,
query
:
{
isPreview
:
true
,
projectId
:
item
.
id
}
})
}
projectId
:
item
.
id
,
},
});
};
</
script
>
<
style
scoped
lang=
"less"
>
@import "@/styles/manage.less";
@import "@/styles/manage.less";
</
style
>
src/views/projectManage/projectDraft.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
>
...
...
@@ -24,9 +26,27 @@
@
current-page-change=
"handleCurrentPageChange"
>
<template
#
operations=
"
{ row, index }">
<el-button
link
type=
"primary"
size=
"small"
@
click=
"previewProject(row)"
>
查看
</el-button>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"editProject(row)"
>
编辑
</el-button>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteProject(row)"
>
删除
</el-button>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"previewProject(row)"
>
查看
</el-button
>
<el-button
link
type=
"primary"
size=
"small"
@
click=
"editProject(row)"
>
编辑
</el-button
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteProject(row)"
>
删除
</el-button
>
</
template
>
</common-table>
</div>
...
...
@@ -35,27 +55,30 @@
</template>
<
script
setup
>
import
{
reactive
,
ref
,
onMounted
,
computed
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
import
{
reactive
,
ref
,
onMounted
,
computed
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
// 计算表格高度
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
// 计算表格高度
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
{
prop
:
"projectName"
,
label
:
"项目名称"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"projectCode"
,
label
:
"项目编号"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"projectLzType"
,
...
...
@@ -63,10 +86,20 @@
width
:
120
,
align
:
"center"
,
formatter
:
(
data
)
=>
{
return
data
.
projectLzType
===
"1"
?
"待立项"
:
data
.
projectLzType
===
"3"
?
"立项审批中"
:
data
.
projectLzType
===
"5"
?
"已立项"
:
data
.
projectLzType
===
"7"
?
"决策填报中"
:
data
.
projectLzType
===
"8"
?
"决策审批中"
:
data
.
projectLzType
===
"9"
?
"已决策"
:
"待立项"
}
return
data
.
projectLzType
===
"1"
?
"待立项"
:
data
.
projectLzType
===
"3"
?
"立项审批中"
:
data
.
projectLzType
===
"5"
?
"已立项"
:
data
.
projectLzType
===
"7"
?
"决策填报中"
:
data
.
projectLzType
===
"8"
?
"决策审批中"
:
data
.
projectLzType
===
"9"
?
"已决策"
:
"待立项"
;
},
},
{
prop
:
"operations"
,
...
...
@@ -74,15 +107,15 @@
width
:
170
,
slot
:
"operations"
,
fixed
:
"right"
,
align
:
"center"
}
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getProjectData
=
(
)
=>
{
align
:
"center"
,
},
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/listProject"
,
...
...
@@ -90,68 +123,71 @@
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
attributes
:
[],
menuType
:
"xmlingxuan"
menuType
:
"xmlingxuan"
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
total
.
value
=
data
.
count
;
loading
.
value
=
false
;
}
})
};
onMounted
(()
=>
{
},
});
};
onMounted
(()
=>
{
getProjectData
();
})
// 分页
const
handleSizeChange
=
(
size
)
=>
{
});
// 分页
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
getProjectData
();
}
const
handleCurrentPageChange
=
(
page
)
=>
{
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
getProjectData
();
}
const
addProject
=
()
=>
{
};
const
addProject
=
()
=>
{
router
.
push
(
"/addProject"
);
};
const
editProject
=
(
item
)
=>
{
};
const
editProject
=
(
item
)
=>
{
router
.
push
({
name
:
"addProject"
,
query
:
{
projectId
:
item
.
id
}
projectId
:
item
.
id
,
},
});
};
const
previewProject
=
(
item
)
=>
{
};
const
previewProject
=
(
item
)
=>
{
router
.
push
({
name
:
"addProject"
,
query
:
{
isPreview
:
true
,
projectId
:
item
.
id
}
projectId
:
item
.
id
,
},
});
};
const
deleteProject
=
(
item
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
}
const
deleteProject
=
(
item
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,{
confirmButtonText
:
'确认'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}).
then
(()
=>
{
.
then
(()
=>
{
proxy
.
$post
({
url
:
"/api/project/deleteProject"
,
data
:
{
id
:
item
.
id
id
:
item
.
id
,
},
callback
:
(
data
)
=>
{
ElMessage
.
success
(
"删除成功"
);
getProjectData
();
}
},
});
})
}).
catch
(()
=>
{})
}
.
catch
(()
=>
{});
};
</
script
>
<
style
scoped
lang=
"less"
>
@import "@/styles/manage.less";
@import "@/styles/manage.less";
</
style
>
src/views/projectManage/projectSetUp.vue
View file @
d3e79971
<
template
>
<div
class=
"manage-container"
>
<div
class=
"manage-wrap"
>
<search-form
@
search=
"handleSearch"
/>
<div
class=
"manage-header"
>
<div
class=
"header-left"
></div>
<div
class=
"header-right"
></div>
...
...
@@ -23,14 +25,24 @@
>
<template
#
operations=
"
{ row, index }">
<!-- 已立项 -->
<el-button
link
type=
"primary"
size=
"small"
<el-button
link
type=
"primary"
size=
"small"
v-if=
"row.projectLzType === '5'"
@
click=
"fillDecision(row)"
>
决策填报
</el-button>
>
决策填报
</el-button
>
<!-- 立项审批中 -->
<el-button
link
type=
"primary"
size=
"small"
v-else
:loading=
"row.loading"
@
click=
"viewDecision(row)"
>
{{
canAudit
?
"审批"
:
"查看"
}}
</el-button>
<el-button
link
type=
"primary"
size=
"small"
v-else
:loading=
"row.loading"
@
click=
"viewDecision(row)"
>
{{
canAudit
?
"审批"
:
"查看"
}}
</el-button
>
</
template
>
</common-table>
</div>
...
...
@@ -39,35 +51,44 @@
</template>
<
script
setup
>
import
{
reactive
,
ref
,
onMounted
,
computed
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
{
reactive
,
ref
,
onMounted
,
computed
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
SearchForm
from
"@/components/common/SearchForm.vue"
;
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
// 是否是审核角色
const
userStore
=
useUserStore
();
const
userInfo
=
userStore
.
userInfo
||
(
sessionStorage
.
getItem
(
"userInfo"
)
&&
JSON
.
parse
(
sessionStorage
.
getItem
(
"userInfo"
)))
||
{};
let
canAudit
=
ref
(
false
);
userInfo
.
roles
.
map
(
item
=>
{
const
handleSearch
=
(
formData
)
=>
{
currentPage
.
value
=
1
;
getProjectData
(
formData
);
};
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
// 是否是审核角色
const
userStore
=
useUserStore
();
const
userInfo
=
userStore
.
userInfo
||
(
sessionStorage
.
getItem
(
"userInfo"
)
&&
JSON
.
parse
(
sessionStorage
.
getItem
(
"userInfo"
)))
||
{};
let
canAudit
=
ref
(
false
);
userInfo
.
roles
.
map
((
item
)
=>
{
if
([
"xmlx_sp"
,
"xmjc_sp"
].
includes
(
item
.
key
))
{
canAudit
.
value
=
true
;
}
});
});
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
{
prop
:
"projectName"
,
label
:
"项目名称"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"projectCode"
,
label
:
"项目编号"
,
showOverflowTooltip
:
true
showOverflowTooltip
:
true
,
},
{
prop
:
"projectLzType"
,
...
...
@@ -75,10 +96,20 @@
width
:
120
,
align
:
"center"
,
formatter
:
(
data
)
=>
{
return
data
.
projectLzType
===
"1"
?
"待立项"
:
data
.
projectLzType
===
"3"
?
"立项审批中"
:
data
.
projectLzType
===
"5"
?
"已立项"
:
data
.
projectLzType
===
"7"
?
"决策填报中"
:
data
.
projectLzType
===
"8"
?
"决策审批中"
:
data
.
projectLzType
===
"9"
?
"已决策"
:
"待立项"
}
return
data
.
projectLzType
===
"1"
?
"待立项"
:
data
.
projectLzType
===
"3"
?
"立项审批中"
:
data
.
projectLzType
===
"5"
?
"已立项"
:
data
.
projectLzType
===
"7"
?
"决策填报中"
:
data
.
projectLzType
===
"8"
?
"决策审批中"
:
data
.
projectLzType
===
"9"
?
"已决策"
:
"待立项"
;
},
},
{
prop
:
"operations"
,
...
...
@@ -86,16 +117,16 @@
width
:
120
,
slot
:
"operations"
,
fixed
:
"right"
,
align
:
"center"
}
]);
align
:
"center"
,
},
]);
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getProjectData
=
(
)
=>
{
let
loading
=
ref
(
false
);
let
total
=
ref
(
0
);
let
currentPage
=
ref
(
1
);
let
pageSize
=
ref
(
10
);
// 获取列表数据
const
getProjectData
=
(
params
=
{}
)
=>
{
loading
.
value
=
true
;
proxy
.
$post
({
url
:
"/api/project/listProject"
,
...
...
@@ -103,47 +134,48 @@
page
:
currentPage
.
value
,
pagesize
:
pageSize
.
value
,
attributes
:
[],
menuType
:
"xmlx"
menuType
:
"xmlx"
,
...
params
,
},
callback
:
(
data
)
=>
{
tableData
.
value
=
data
.
rows
;
total
.
value
=
data
.
count
;
loading
.
value
=
false
;
}
})
};
onMounted
(()
=>
{
},
});
};
onMounted
(()
=>
{
getProjectData
();
})
// 分页
const
handleSizeChange
=
(
size
)
=>
{
});
// 分页
const
handleSizeChange
=
(
size
)
=>
{
pageSize
.
value
=
size
;
currentPage
.
value
=
1
;
getProjectData
();
}
const
handleCurrentPageChange
=
(
page
)
=>
{
};
const
handleCurrentPageChange
=
(
page
)
=>
{
currentPage
.
value
=
page
;
getProjectData
();
}
const
viewDecision
=
(
item
)
=>
{
};
const
viewDecision
=
(
item
)
=>
{
router
.
push
({
name
:
"addProject"
,
query
:
{
projectId
:
item
.
id
,
isPreview
:
true
}
isPreview
:
true
,
},
});
};
const
fillDecision
=
(
item
)
=>
{
};
const
fillDecision
=
(
item
)
=>
{
router
.
push
({
name
:
"addProject"
,
query
:
{
projectId
:
item
.
id
}
projectId
:
item
.
id
,
},
});
};
};
</
script
>
<
style
scoped
lang=
"less"
>
@import "@/styles/manage.less";
@import "@/styles/manage.less";
</
style
>
src/views/projectManage/templateManage.vue
View file @
d3e79971
...
...
@@ -9,10 +9,18 @@
</div>
</div>
<div
class=
"manage-content"
>
<el-table
:data=
"tableData"
style=
"width: 100%; height: 100%;"
empty-text=
"暂无数据"
border
>
<el-table
:data=
"tableData"
style=
"width: 100%; height: 100%"
empty-text=
"暂无数据"
border
>
<el-table-column
type=
"index"
width=
"50"
/>
<el-table-column
v-for=
"column in tableColumns"
:key=
"column.prop"
:prop=
"column.prop"
:label=
"column.label"
<el-table-column
v-for=
"column in tableColumns"
:key=
"column.prop"
:prop=
"column.prop"
:label=
"column.label"
>
<template
#
default=
"scope"
>
<el-input
v-model=
"scope.row[column.prop]"
/>
...
...
@@ -20,7 +28,13 @@
</el-table-column>
<el-table-column
label=
"操作"
width=
"60"
>
<
template
#
default=
"scope"
>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteItem(scope.$index)"
>
删除
</el-button>
<el-button
link
type=
"danger"
size=
"small"
@
click=
"deleteItem(scope.$index)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -30,96 +44,104 @@
</template>
<
script
setup
>
import
{
reactive
,
ref
}
from
"vue"
;
import
{
exportTableFile
}
from
"../../common/tableFileHandle"
;
const
tableColumns
=
reactive
([
import
{
reactive
,
ref
}
from
"vue"
;
import
{
exportTableFile
}
from
"../../common/tableFileHandle"
;
const
tableColumns
=
reactive
([
{
prop
:
"projectName"
,
label
:
"项目名称"
label
:
"项目名称"
,
},
{
prop
:
"tzglzt"
,
label
:
"投资管理主体"
label
:
"投资管理主体"
,
},
{
prop
:
"jcdw"
,
label
:
"决策单位"
label
:
"决策单位"
,
},
{
prop
:
"xdpfsj"
,
label
:
"下达批复时间"
label
:
"下达批复时间"
,
},
{
prop
:
"zyx"
,
label
:
"重要性"
label
:
"重要性"
,
},
{
prop
:
"ssjd"
,
label
:
"实施阶段"
label
:
"实施阶段"
,
},
{
prop
:
"pfnr"
,
label
:
"批复内容"
label
:
"批复内容"
,
},
{
prop
:
"pfyjsm"
,
label
:
"批复意见落实情况具体说明"
label
:
"批复意见落实情况具体说明"
,
},
{
prop
:
"lszxqk"
,
label
:
"落实(执行)情况"
label
:
"落实(执行)情况"
,
},
{
prop
:
"zcclxh"
,
label
:
"支撑材料序号"
label
:
"支撑材料序号"
,
},
{
prop
:
"wlsyy"
,
label
:
"未落实原因"
label
:
"未落实原因"
,
},
{
prop
:
"xybgzcs"
,
label
:
"下一步工作措施"
label
:
"下一步工作措施"
,
},
{
prop
:
"yjwcsj"
,
label
:
"预计完成时间"
label
:
"预计完成时间"
,
},
{
prop
:
"zrld"
,
label
:
"责任领导"
label
:
"责任领导"
,
},
{
prop
:
"zrbnmjzrr"
,
label
:
"责任部门及责任人"
label
:
"责任部门及责任人"
,
},
{
prop
:
"sfgx"
,
label
:
"是否更新"
label
:
"是否更新"
,
},
{
prop
:
"bz"
,
label
:
"备注"
}
]);
let
tableData
=
ref
([]);
const
addItem
=
()
=>
{
label
:
"备注"
,
},
]);
let
tableData
=
ref
([]);
const
addItem
=
()
=>
{
tableData
.
value
.
push
({});
}
const
deleteItem
=
(
index
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,{
confirmButtonText
:
'确认'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}).
then
(()
=>
{
};
const
deleteItem
=
(
index
)
=>
{
ElMessageBox
.
confirm
(
"确认删除该项?"
,
"提示"
,
{
confirmButtonText
:
"确认"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(()
=>
{
tableData
.
value
.
splice
(
index
,
1
);
}).
catch
(()
=>
{});
};
const
exportData
=
()
=>
{
exportTableFile
(
tableData
.
value
,
tableColumns
,
"投资项目批复意见落实情况统计表"
,
"导出文件"
)
};
})
.
catch
(()
=>
{});
};
const
exportData
=
()
=>
{
exportTableFile
(
tableData
.
value
,
tableColumns
,
"投资项目批复意见落实情况统计表"
,
"导出文件"
,
);
};
</
script
>
<
style
lang=
"less"
>
@import "@/styles/manage.less";
@import "@/styles/manage.less";
</
style
>
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