From ca1fbcfd90fc1d6977e59cace3c33f2460cfce66 Mon Sep 17 00:00:00 2001
From: xy <271556543@qq.com>
Date: Tue, 11 Apr 2023 17:18:12 +0800
Subject: [PATCH] 2023-4-11
---
src/api/achievements/evaluate.js | 33 ++
src/api/achievements/points.js | 33 ++
src/api/system/expand.js | 33 ++
src/components/XyTable/index.vue | 245 +++++++------
src/styles/element-ui.scss | 23 ++
.../achievements/components/addEvaluate.vue | 303 +++++++++++++++
.../achievements/components/addPoint.vue | 347 ++++++++++++++++++
.../achievements/components/addTypes.vue | 37 +-
src/views/achievements/evaluate.vue | 184 ++++++++++
src/views/achievements/point.vue | 240 ++++++++++++
src/views/achievements/types.vue | 87 ++++-
src/views/budget/point.vue | 197 +++++++++-
src/views/budget/traget.vue | 17 +
.../contract/components/detailContract.vue | 5 +-
vue.config.js | 3 +
15 files changed, 1646 insertions(+), 141 deletions(-)
create mode 100644 src/api/achievements/evaluate.js
create mode 100644 src/api/achievements/points.js
create mode 100644 src/api/system/expand.js
create mode 100644 src/views/achievements/components/addEvaluate.vue
create mode 100644 src/views/achievements/components/addPoint.vue
create mode 100644 src/views/achievements/evaluate.vue
create mode 100644 src/views/achievements/point.vue
create mode 100644 src/views/budget/traget.vue
diff --git a/src/api/achievements/evaluate.js b/src/api/achievements/evaluate.js
new file mode 100644
index 0000000..e9082eb
--- /dev/null
+++ b/src/api/achievements/evaluate.js
@@ -0,0 +1,33 @@
+import request from '@/utils/request'
+
+export function index(params) {
+ return request({
+ method: 'get',
+ url: '/api/admin/plan_evaluate/index',
+ params
+ })
+}
+
+export function show(params) {
+ return request({
+ method: 'get',
+ url: '/api/admin/plan_evaluate/show',
+ params
+ })
+}
+
+export function save(data) {
+ return request({
+ method: 'post',
+ url: '/api/admin/plan_evaluate/save',
+ data
+ })
+}
+
+export function destroy(params) {
+ return request({
+ method: 'get',
+ url: '/api/admin/plan_evaluate/destroy',
+ params
+ })
+}
diff --git a/src/api/achievements/points.js b/src/api/achievements/points.js
new file mode 100644
index 0000000..75888a1
--- /dev/null
+++ b/src/api/achievements/points.js
@@ -0,0 +1,33 @@
+import request from '@/utils/request'
+
+export function index(params) {
+ return request({
+ method: "get",
+ url: "/api/admin/target/index",
+ params
+ })
+}
+
+export function show(params) {
+ return request({
+ method: "get",
+ url: "/api/admin/target/show",
+ params
+ })
+}
+
+export function save(data) {
+ return request({
+ method: "post",
+ url: "/api/admin/target/save",
+ data
+ })
+}
+
+export function destroy(params) {
+ return request({
+ method: "get",
+ url: "/api/admin/target/destroy",
+ params
+ })
+}
diff --git a/src/api/system/expand.js b/src/api/system/expand.js
new file mode 100644
index 0000000..4274f05
--- /dev/null
+++ b/src/api/system/expand.js
@@ -0,0 +1,33 @@
+import request from '@/utils/request';
+
+export function index(params) {
+ return request({
+ method: 'get',
+ url: '/api/admin/admin_expand/index',
+ params
+ })
+}
+
+export function save(data) {
+ return request({
+ method: 'post',
+ url: '/api/admin/admin_expand/save',
+ data
+ })
+}
+
+export function show(params) {
+ return request({
+ method: 'get',
+ url: '/api/admin/admin_expand/show',
+ params
+ })
+}
+
+export function destroy(params) {
+ return request({
+ method: 'get',
+ url: '/api/admin/admin_expand/destroy',
+ params
+ })
+}
diff --git a/src/components/XyTable/index.vue b/src/components/XyTable/index.vue
index 559a39d..feec659 100644
--- a/src/components/XyTable/index.vue
+++ b/src/components/XyTable/index.vue
@@ -16,6 +16,14 @@ export default {
type:Number,
default:18
},
+ expandRowKeys:{
+ type: Array,
+ default: ()=>[]
+ },
+ rowKey:{
+ type:[String,Function],
+ default:'id'
+ },
cellStyle:{
type:Function,
default:()=>{}
@@ -102,6 +110,12 @@ export default {
cellClick(row, column, cell){
this.$emit('cellClick',row, column, cell)
},
+ selectAllClick(selection){
+ this.$emit('select-all',selection)
+ },
+ selectChange(selection){
+ this.$emit('selection-change',selection)
+ },
createIndexRow(){
return
},
@@ -123,10 +137,10 @@ export default {
mounted() {
},
render(h) {
- let {summaryMethod,cellClick,btnWidth,selectClick,height,createIndexRow,tableStyle,treeProps,showSummary,showHeader,$scopedSlots,showIndex,defaultExpandAll,headerCellStyle,headerRowStyle,rowStyle,cellStyle,indent,tableHeight,tableItem,list,deleteClick,editorClick,rowClick,objectSpanMethod} = this
+ let {rowKey,expandRowKeys,selectChange,selectAllClick,summaryMethod,cellClick,btnWidth,selectClick,height,createIndexRow,tableStyle,treeProps,showSummary,showHeader,$scopedSlots,showIndex,defaultExpandAll,headerCellStyle,headerRowStyle,rowStyle,cellStyle,indent,tableHeight,tableItem,list,deleteClick,editorClick,rowClick,objectSpanMethod} = this
return (
-
- { tableItem && tableItem.length>0 ?
+
+ {tableItem && tableItem.length > 0 ?
(
- {
- //序号
- showIndex ? createIndexRow() : ''
- }
-
+ on={{
+ ['select']: selectClick,
+ ['cell-click']: cellClick,
+ ['select-all']: selectAllClick,
+ ['selection-change']: selectChange,
+ ['expand-change']: (row, expanded) => this.$emit('expand-change', { row, expanded })
+ }}
+ >
{
- tableItem.map((item,index)=>{
- //自定义表格内容
- if(item.customFn){
- return (
-
-
- )
- }
- else if(item.multiHd){
- //树结构表格内容
- return (
-
- {item.multiHd.map((item1,index1)=>{
- if(item1.customFn){
- return (
-
-
- )
- }else{
- return (
-
-
- )
- }
- })}
-
- )
- }
- else{
- //默认内容
- return (
-
-
- )
- }
- })}
+ tableItem.map((item, index) => {
+ //自定义表格内容
+ if (item.customFn) {
+ return (
+
+
+ )
+ } else if (item.multiHd) {
+ //二级表头结构表格内容
+ return (
+
+ {item.multiHd.map((item1, index1) => {
+ if (item1.customFn) {
+ return (
+
+
+ )
+ } else {
+ return (
+
+
+ )
+ }
+ })}
+
+ )
+ } else {
+ //默认内容
+ return (
+
+
+ )
+ }
+ })}
{
$scopedSlots.btns ? $scopedSlots.btns() :
@@ -245,19 +276,22 @@ export default {
width={btnWidth}
header-align="center"
scopedSlots={{
- default( scope ){
+ default(scope) {
return (
deleteClick(scope.row)}}>
+ on={{ ['on-ok']: () => deleteClick(scope.row) }}
+ >
删除
+ ghost
+ >删除
+
editorClick(scope.row)}>编辑
+ onClick={() => editorClick(scope.row)}
+ >编辑
+
)
}
- }}>
-
- )
+ }}
+ >
+ )
}
)
:
-
}
+
}
+ bottom={100}
+ right={36}
+ >
)
diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss
index 3860250..6cab473 100644
--- a/src/styles/element-ui.scss
+++ b/src/styles/element-ui.scss
@@ -48,6 +48,29 @@
box-sizing: content-box;
}
+.el-table__body-wrapper{
+
+ z-index:2
+
+}
+
+//层级选择
+.el-cascader-panel .el-radio {
+ width: 100%;
+ height: 100%;
+ z-index: 10;
+ position: absolute;
+ top: 10px;
+ right: 10px;
+}
+.el-cascader-panel .el-radio__input {
+ visibility: hidden;
+}
+.el-cascader-panel .el-cascader-node__postfix {
+ top: 10px;
+}
+
+
.el-table__body-wrapper{
z-index:2
diff --git a/src/views/achievements/components/addEvaluate.vue b/src/views/achievements/components/addEvaluate.vue
new file mode 100644
index 0000000..a8c912d
--- /dev/null
+++ b/src/views/achievements/components/addEvaluate.vue
@@ -0,0 +1,303 @@
+
+
+
+
+
+
+ *
+ 计划指标 :
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
文件 :
+
+
+ 选取文件
+ 开始上传
+
+ 支持文件格式:.rar .zip .doc .docx .pdf
+
单个文件不能超过500kb
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/achievements/components/addPoint.vue b/src/views/achievements/components/addPoint.vue
new file mode 100644
index 0000000..0afd00a
--- /dev/null
+++ b/src/views/achievements/components/addPoint.vue
@@ -0,0 +1,347 @@
+
+
+
+
+
+
+ *
+ 一级指标 :
+
+
+ {
+ form.target_type_id = e.id;
+ target_type2s = e.children;
+ }"
+ >
+
+
+
+
+
+
+
+
+ *
+ 二级指标 :
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ *
+ 单位 :
+
+
+
+
+
+
+
+
+
+
+
+ *
+ 计算符号 :
+
+
+
+
+
+
+
+
+
+
+
+ *
+ 半年(程)指标值 :
+
+
+
+
+
+
+
+
+
+ *
+ 全年(程)指标值 :
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/achievements/components/addTypes.vue b/src/views/achievements/components/addTypes.vue
index 8269fb5..abc0e5f 100644
--- a/src/views/achievements/components/addTypes.vue
+++ b/src/views/achievements/components/addTypes.vue
@@ -24,7 +24,7 @@
style="width: 300px"
:show-all-levels="false"
v-model="form.pid"
- :options="pids"
+ :options="pidFormat"
:props="{ value: 'id', label: 'name', checkStrictly: true }"
@change="pidCascaderHandler"
>
@@ -87,7 +87,10 @@
import { show, save } from "@/api/achievements/types";
export default {
props: {
- pids:Array
+ pids:{
+ type: Array,
+ default:() => []
+ }
},
data() {
return {
@@ -95,7 +98,7 @@ export default {
id: "",
type: "",
- cascaderId_pid: "",
+ cascaderId_pid: 0,
form: {
pid: "",
@@ -134,6 +137,20 @@ export default {
sort: "",
};
},
+ setForm(key = [], value = []) {
+ if(key instanceof Array) {
+ key.forEach((key,index) => {
+ this.form[key] = value[index] ?? "";
+ })
+ }
+ if(typeof key === "string"){
+ this.form[key] = value
+ }
+ if(!key){
+ this.init()
+ }
+ },
+
pidCascaderHandler(e) {
if (e.length > 0) {
this.form.pid = e.at(-1);
@@ -171,6 +188,17 @@ export default {
});
},
},
+ computed: {
+ pidFormat() {
+ return [
+ {
+ id: 0,
+ name: "根结点",
+ children: this.pids
+ }
+ ]
+ }
+ },
watch: {
isShow(val) {
if (val) {
@@ -185,9 +213,6 @@ export default {
delete this.form.id;
}
},
- pids() {
- ++this.cascaderId_pid;
- },
},
};
diff --git a/src/views/achievements/evaluate.vue b/src/views/achievements/evaluate.vue
new file mode 100644
index 0000000..28ae853
--- /dev/null
+++ b/src/views/achievements/evaluate.vue
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
+ 关键字
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/achievements/point.vue b/src/views/achievements/point.vue
new file mode 100644
index 0000000..334e1ae
--- /dev/null
+++ b/src/views/achievements/point.vue
@@ -0,0 +1,240 @@
+
+
+
+
+
+
+
+
+
+ 关键字
+
+
+
+
+
+
+
+
+
+
+
+
{
+ $refs['addPoint'].id = row.id;
+ $refs['addPoint'].type = 'editor';
+ $refs['addPoint'].show();
+ }"
+ @delete="destroy">
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/achievements/types.vue b/src/views/achievements/types.vue
index c7c5376..d040149 100644
--- a/src/views/achievements/types.vue
+++ b/src/views/achievements/types.vue
@@ -21,19 +21,42 @@
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
-
+
diff --git a/src/views/budget/point.vue b/src/views/budget/point.vue
index 568c8cf..de38a31 100644
--- a/src/views/budget/point.vue
+++ b/src/views/budget/point.vue
@@ -15,56 +15,227 @@
-
+
+
-
+ {
+ $refs['addPoint'].id = row.id;
+ $refs['addPoint'].type = 'editor';
+ $refs['addPoint'].show();
+ }"
+ @delete="destroy">
+
+
diff --git a/src/views/budget/traget.vue b/src/views/budget/traget.vue
new file mode 100644
index 0000000..1f9066c
--- /dev/null
+++ b/src/views/budget/traget.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/contract/components/detailContract.vue b/src/views/contract/components/detailContract.vue
index eedaaff..c0c44f4 100644
--- a/src/views/contract/components/detailContract.vue
+++ b/src/views/contract/components/detailContract.vue
@@ -7,7 +7,7 @@
title="详情"
class="contract-detail"
>
-
+
项目基本信息
@@ -216,9 +216,6 @@
-
-
-