From f40836bbcd74b931b332a1c262e6776af1e4cc14 Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期日, 23 六月 2024 21:10:05 +0800
Subject: [PATCH] update
---
src/views/console/basic-data/tpmComp1.vue | 356 ++++++++++++++++++++++++++++++++++++++++++++++++++
src/views/console/basic-data/tpm-data.vue | 8
2 files changed, 361 insertions(+), 3 deletions(-)
diff --git a/src/views/console/basic-data/tpm-data.vue b/src/views/console/basic-data/tpm-data.vue
index 9614525..5645e48 100644
--- a/src/views/console/basic-data/tpm-data.vue
+++ b/src/views/console/basic-data/tpm-data.vue
@@ -1,7 +1,7 @@
<!--
* @Date: 2024-06-16 19:47:41
* @LastEditors: Sneed
- * @LastEditTime: 2024-06-23 19:54:17
+ * @LastEditTime: 2024-06-23 19:59:13
* @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/console/basic-data/tpm-data.vue
-->
<template>
@@ -24,7 +24,7 @@
</el-container>
</el-tab-pane>
<el-tab-pane label="鐐规椤圭洰" name="2">
-
+ <tpmComp1></tpmComp1>
</el-tab-pane>
<el-tab-pane label="鏁呴殰绫诲瀷" name="3">
<el-container>
@@ -53,10 +53,12 @@
<script>
import Header from './tpm-data-header.vue'
import TpmData1 from './tpm-data1.vue'
+import tpmComp1 from './tpmComp1.vue'
export default {
components: {
Header,
- TpmData1
+ TpmData1,
+ tpmComp1
},
data() {
return {
diff --git a/src/views/console/basic-data/tpmComp1.vue b/src/views/console/basic-data/tpmComp1.vue
new file mode 100644
index 0000000..3a5590f
--- /dev/null
+++ b/src/views/console/basic-data/tpmComp1.vue
@@ -0,0 +1,356 @@
+<!--
+ * @Date: 2024-06-23 19:58:50
+ * @LastEditors: Sneed
+ * @LastEditTime: 2024-06-23 21:07:31
+ * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/console/basic-data/tpmComp1.vue
+-->
+<template>
+ <el-conatiner>
+ <el-header>
+ <el-button type="primary" @click="addNew">鏂板缓</el-button>
+ <!-- <el-button type="primary">瀵煎叆</el-button> -->
+ <import-table style="margin:0 8px" :exportUrl="exportUrlTpl" :uploadUrl="uploadUrl"></import-table>
+ <el-button type="primary" @click="exportData">瀵煎嚭</el-button>
+ <el-popconfirm width="220" cancel-button-text="鍋滅敤" confirm-button-text="鍒犻櫎"
+ title="鍒犻櫎鏁版嵁浼氬奖鍝嶅凡鍏宠仈鐨勪笟鍔� ,鑻ユ偍鎯冲湪宸插叧鑱旂殑涓氬姟涓緷鐒舵樉绀鸿繖浜涙暟鎹�, 鎮ㄥ彲浠ラ�夋嫨 鍋滅敤 鎿嶄綔銆傚仠鐢ㄥ悗姝ゆ暟鎹皢涓嶈兘鍐嶈鏂颁笟鍔′娇鐢ㄣ��"
+ @confirm="table_del(selection, '0')" @cancel="table_del(selection, '1')">
+ <template #reference>
+ <el-button :disabled="selection.length == 0" type="danger" plain icon="el-icon-delete"></el-button>
+ </template>
+ </el-popconfirm>
+ <el-select v-model="params.status" placeholder="璇烽�夋嫨" style="width: 240px;margin-left: auto;">
+ <template #prefix><span style="margin-right: 6px;">鐘舵��</span></template>
+ <el-option key="0" label="鍋滅敤" :value="0" />
+ <el-option key="1" label="鍚敤" :value="1" />
+ </el-select>
+ <el-input style="width: 240px;margin-left: 8px;" v-model="params.keyWord" placeholder="璇疯緭鍏ユ绱㈠唴瀹�"></el-input>
+ <el-button @click="search" style="margin-left: 8px;" type="primary" icon="el-icon-search"></el-button>
+ <scDialog v-model="visible">
+ <scForm v-if="visible" ref="form" :config="config" :rules="rules" v-model="form" @submit="submit">
+ </scForm>
+ </scDialog>
+ </el-header>
+ <el-main>
+ <scTable ref="table" @selection-change="handleSelectionChange" row-key="id" border :apiObj="apiObj" stripe
+ @dataChange="dataChange">
+ <el-table-column type="selection" width="55" />
+ <el-table-column prop="code" label="鐐规缂栧彿" />
+ <el-table-column prop="name" label="鐐规椤圭洰" />
+ <el-table-column prop="remark" label="鐐规澶囨敞" />
+ <el-table-column prop="statusName" label="鐐规鐘舵��" />
+ <el-table-column label="鎿嶄綔" fixed="right" align="left" width="160">
+ <template #default="scope">
+ <el-button-group>
+ <el-button text type="primary" size="small"
+ @click="view(scope.row, scope.$index)">鏌ョ湅鐐规椤�</el-button>
+ <el-button text type="primary" size="small"
+ @click="table_edit(scope.row, scope.$index)">缂栬緫</el-button>
+ <el-popconfirm width="220" cancel-button-text="鍋滅敤" confirm-button-text="鍒犻櫎"
+ title="鍒犻櫎鏁版嵁浼氬奖鍝嶅凡鍏宠仈鐨勪笟鍔� ,鑻ユ偍鎯冲湪宸插叧鑱旂殑涓氬姟涓緷鐒舵樉绀鸿繖浜涙暟鎹�, 鎮ㄥ彲浠ラ�夋嫨 鍋滅敤 鎿嶄綔銆傚仠鐢ㄥ悗姝ゆ暟鎹皢涓嶈兘鍐嶈鏂颁笟鍔′娇鐢ㄣ��"
+ @confirm="table_del([scope.row], '0')" @cancel="table_del([scope.row], '1')">
+ <template #reference>
+ <el-button type="danger" text size="small">鍒犻櫎</el-button>
+ </template>
+ </el-popconfirm>
+ </el-button-group>
+ </template>
+ </el-table-column>
+ </scTable>
+ </el-main>
+ <scDialog v-model="visibleCheck">
+ <scFormTable ref="table1" v-model="tabledata" stripe hideDelete :addTemplate="addTemplate">
+ <el-table-column label="鐐规椤�" prop="name">
+ <template #default="scope">
+ <el-input v-if="scope.row.isEdit" v-model="scope.row.name"></el-input>
+ <span v-else>{{ scope.row.name }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏁板�肩被鍨�" prop="valueType">
+ <template #default="scope">
+ <el-select v-if="scope.row.isEdit" v-model="scope.row.valueType" style="width: 100%;"
+ @change="change($event, scope.row)">
+ <el-option v-for="(item, index) in options" :key="index" :label="item"
+ :value="item"></el-option>
+ </el-select>
+ <span v-else>{{ scope.row.valueType }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鐐规瑕佹眰" prop="requirement">
+ <template #default="scope">
+ <el-input v-if="scope.row.isEdit" v-model="scope.row.requirement"></el-input>
+ <span v-else>{{ scope.row.requirement }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏍囧噯鏁板��" prop="standardValue" width="180">
+ <template #default="scope">
+ <el-input v-if="scope.row.isEdit && scope.row.valueType === 'Text'"
+ v-model="scope.row.standardValue"></el-input>
+ <el-input-number v-model="scope.row.standardValue"
+ v-else-if="scope.row.isEdit && scope.row.valueType === 'Number'" :min="0" />
+
+ <el-date-picker style="width: 150px" value-format="YYYY-MM-DD" v-model="scope.row.standardValue"
+ v-else-if="scope.row.isEdit && scope.row.valueType === 'Date'" type="date" />
+ <span v-else>{{ scope.row.standardValue }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" prop="state">
+ <template #default="scope">
+ <el-button-group>
+ <el-button v-show="!scope.row.id || scope.row.isEdit" text type="primary" size="small"
+ @click="add(scope.row)">淇濆瓨</el-button>
+ <el-button v-show="!scope.row.id || scope.row.isEdit" text type="primary" size="small"
+ @click="cancel(scope.row)">鍙栨秷</el-button>
+ <el-button v-show="!scope.row.isEdit" text type="primary" size="small"
+ @click="edit(scope.row)">缂栬緫</el-button>
+ <el-popconfirm width="220" title="纭畾灏嗛�夋嫨鐨勬暟鎹垹闄�" @confirm="del(scope.row)">
+ <template #reference>
+ <el-button v-show="!scope.row.isEdit" text type="primary"
+ size="small">鍒犻櫎</el-button>
+ </template>
+ </el-popconfirm>
+ </el-button-group>
+
+ </template>
+ </el-table-column>
+ </scFormTable>
+ </scDialog>
+ </el-conatiner>
+</template>
+
+<script>
+import importTable from '@/layout/components/importTable.vue'
+export default {
+ components: {
+ importTable,
+ },
+ data() {
+ return {
+ params: {
+ status: 1,
+ key: ''
+ },
+ form: {},
+ selection: [],
+ visible: false,
+ exportUrlTpl: '/api/blade-cps/check-project/excel/template',
+ uploadUrl: '/api/blade-cps/check-project/excel/import',
+ config: {
+ labelWidth: 120,
+ formItems: [
+ {
+ component: 'input',
+ label: '鐐规缂栧彿',
+ name: 'code',
+ options: {
+ placeholder: '',
+ maxlength: 100,
+ }
+ },
+ {
+ component: 'input',
+ label: '鐐规椤圭洰',
+ name: 'name',
+ options: {
+ multiple: false,
+ data: []
+ },
+ disabled: false
+ },
+ {
+ component: 'input',
+ label: '澶囨敞',
+ name: 'remark',
+ type: 'textarea',
+ options: {
+ multiple: false,
+ data: []
+ },
+ disabled: false
+ },
+ {
+ component: 'select',
+ label: '鐘舵��',
+ name: 'status',
+ options: {
+ multiple: false,
+ items: [
+ {
+ value: 1,
+ label: '鍚敤'
+ },
+ {
+ value: 0,
+ label: '鍋滅敤'
+ },
+ ]
+ },
+ disabled: false
+ }
+ ]
+ },
+ rules: {
+ code: [
+ { required: true, message: '璇疯緭鍏�' },
+ ],
+ name: [
+ { required: true, message: '璇疯緭鍏�' },
+ ]
+ },
+ apiObj: {
+ get: async (data) => {
+ let params = {
+ ...data,
+ ...this.params
+ }
+ return await this.$HTTP.get(`/api/blade-cps/check-project/page`, {}, { params }).then(res => {
+ res.data.records = res?.data?.records.map(v => {
+ return {
+ ...v,
+ statusName: v.status ? '鍚敤' : '绂佺敤'
+ }
+ })
+ return res
+ })
+ }
+ },
+ visibleCheck: false,
+ tabledata: [],
+ options: ['Text', 'Number', 'Date'],
+ addTemplate: {
+ isEdit: true,
+ name: '',
+ requirement: '',
+ standardValue: '',
+ valueType: ''
+ }
+ }
+ },
+ methods: {
+ handleSelectionChange(selection) {
+ this.selection = selection
+ },
+ addNew() {
+ this.config.formItems[0].disabled = false
+ this.config.formItems[1].disabled = false
+ this.form = {
+ status: 1,
+ }
+ this.visible = true
+ },
+ table_edit(row) {
+ this.config.formItems[0].disabled = true
+ this.config.formItems[1].disabled = true
+ this.form = {
+ ...row
+ }
+ this.visible = true
+ },
+ submit() {
+ if (!this.form.id) {
+ this.$HTTP.post(`/api/blade-cps/check-project`, this.form).then(res => {
+ if (res.success) {
+ this.visible = false
+ this.search()
+ }
+ })
+ } else {
+ this.$HTTP.put(`/api/blade-cps/check-project`, this.form).then(res => {
+ if (res.success) {
+ this.visible = false
+ this.search()
+ }
+ })
+ }
+
+ },
+ exportData() {
+ this.$HTTP.post(`/api/blade-cps/check-project/excel/export`, {}, { params: this.params }).then(res => {
+ if (res.success) {
+ window.open(res.data.link)
+ }
+ })
+ },
+ search() {
+ this.$refs.table.reload()
+ },
+ table_del(selection, type) {
+ this.$HTTP.delete(`/api/blade-cps/check-project?type=${type}`, {}, {
+ data: {
+ ids: selection.map(v => v.id),
+ }
+ }).then(res => {
+ if (res.success) {
+ this.search()
+ } else {
+ this.$message.error(res.msg)
+ }
+ })
+ },
+ view(row) {
+ this.selectRow = row
+ this.getList().then(() => {
+ this.visibleCheck = true
+ })
+ },
+ getList() {
+ let row = this.selectRow
+ return this.$HTTP.get(`/api/blade-cps/check-item/list?projectId=${row.id}`).then(res => {
+ if (res.success) {
+ this.tabledata = res.data
+ }
+ })
+ },
+ del(row) {
+ this.$HTTP.delete(`/api/blade-cps/check-item`, {}, {
+ data: {
+ ids: [row.id]
+ }
+ }).then(res => {
+ if (res.success) {
+ this.getList()
+ }
+ })
+ },
+ edit(row) {
+ row.isEdit = true
+ },
+ change(e, row) {
+ row.standardValue = ''
+ },
+ cancel(row) {
+ row.isEdit = false
+ },
+ add(row) {
+ if (!row.id) {
+ this.$HTTP.post(`/api/blade-cps/check-item`, {
+ checkProjectId: this.selectRow.id,
+ items: [{
+ ...row,
+ name: row.name,
+ requirement: row.requirement,
+ standardValue: row.standardValue,
+ valueType: row.valueType,
+ status: 1,
+ editable: true
+ }]
+ }).then(res => {
+ this.getList()
+ })
+ } else {
+ this.$HTTP.put(`/api/blade-cps/check-item`, {
+ ...row,
+ name: row.name,
+ requirement: row.requirement,
+ standardValue: row.standardValue,
+ valueType: row.valueType,
+ status: 1,
+ }).then(res => {
+ this.getList()
+ })
+ }
+ }
+ },
+}
+</script>
+
+<style lang="scss" scoped></style>
\ No newline at end of file
--
Gitblit v1.9.3