| | |
| | | <!-- |
| | | * @Date: 2024-04-09 22:18:47 |
| | | * @LastEditors: Sneed |
| | | * @LastEditTime: 2024-04-09 22:19:02 |
| | | * @LastEditTime: 2024-04-11 22:07:46 |
| | | * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/console/system/vision-component-modify.vue |
| | | --> |
| | | <template> |
| | | <div> |
| | | 组件维护 |
| | | </div> |
| | | <el-container> |
| | | <el-aside width="220px"> |
| | | <el-tree default-expand-all style="max-width: 600px" :data="treeData" :props="defaultProps" |
| | | @node-click="handleNodeClick" /> |
| | | </el-aside> |
| | | <el-container> |
| | | <el-header style="justify-content: flex-start;"> |
| | | <el-button type="primary" plain @click="add">新增</el-button> |
| | | <el-button @click="del" plain type="danger" :disabled="selection.length == 0">删除</el-button> |
| | | </el-header> |
| | | <el-main> |
| | | <scTable ref="table" @selection-change="handleSelectionChange" row-key="id" border :params="params" |
| | | :apiObj="apiObj" stripe> |
| | | <el-table-column type="selection" width="55" /> |
| | | <el-table-column prop="name" label="组件名称" /> |
| | | <el-table-column prop="typeName" label="分类名称" /> |
| | | <el-table-column prop="url" label="图片"> |
| | | <template #default="scope"> |
| | | <img style="width: 20px;height: 20px;" :src="`${host}${scope.row.url}`" alt="图片" srcset=""> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="orderNum" 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="table_edit(scope.row, scope.$index)">编辑</el-button> |
| | | <el-popconfirm title="确定删除吗?" @confirm="table_del(scope.row, scope.$index, '0')"> |
| | | <template #reference> |
| | | <el-button text type="primary" size="small">删除</el-button> |
| | | </template> |
| | | </el-popconfirm> |
| | | </el-button-group> |
| | | </template> |
| | | </el-table-column> |
| | | </scTable> |
| | | </el-main> |
| | | </el-container> |
| | | <el-dialog v-model="dialogVisible" :title="dialogTitle" width="1000" > |
| | | <el-form :model="row" :rules="rules" ref="dialogForm" label-width="120px" label-position="center"> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="接口地址" prop="url"> |
| | | <el-input style="width: 100%" v-model="row.url" placeholder="请输入" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="接口中文名" prop="urlName"> |
| | | <el-input style="width: 240px" v-model="row.urlName" placeholder="请输入" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="接口类型" prop="urlType"> |
| | | <el-select v-model="row.urlType" placeholder="请选择" style="width: 240px"> |
| | | <el-option v-for="item in interface_url_type" :key="item.value" :label="item.dictValue" |
| | | :value="item.dictKey - 0" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="图表类型" prop="owningChart"> |
| | | <el-select v-model="row.owningChart" placeholder="请选择" style="width: 240px"> |
| | | <el-option v-for="item in interface_owning_chart" :key="item.value" |
| | | :label="item.dictValue" :value="item.dictKey" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <!-- <el-container> |
| | | <el-header> |
| | | <el-button plain type="primary">新建</el-button> |
| | | </el-header> |
| | | <el-main> |
| | | <el-table :data="tableData" |
| | | row-key="id" border |
| | | > |
| | | </el-table> |
| | | </el-main> |
| | | </el-container> --> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">取消</el-button> |
| | | <el-button type="primary" @click="save"> |
| | | 保存 |
| | | </el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </el-container> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'name', |
| | | }, |
| | | treeData: [], |
| | | params: { |
| | | type: null |
| | | }, |
| | | apiObj: this.$API.setting.component.getList, |
| | | host: '', |
| | | selection: [], |
| | | dialogVisible: false, |
| | | dialogTitle: '新增', |
| | | row: { |
| | | |
| | | }, |
| | | rules: { |
| | | url: [ |
| | | { required: true, message: '请输入' } |
| | | ], |
| | | urlName: [ |
| | | { required: true, message: '请输入' } |
| | | ], |
| | | urlType: [ |
| | | { required: true, message: '请输入' } |
| | | ], |
| | | owningChart: [ |
| | | { required: true, message: '请输入' } |
| | | ], |
| | | }, |
| | | } |
| | | }, |
| | | created() { |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | query() { |
| | | this.$refs.table.reload(this.params) |
| | | }, |
| | | getList() { |
| | | this.$API.setting.component.getImgHost.get().then(res => { |
| | | this.host = res.data + '/visual' |
| | | this.$API.setting.getList.get().then(res => { |
| | | this.treeData = res.data |
| | | }) |
| | | }) |
| | | }, |
| | | handleNodeClick(TreeNode) { |
| | | this.params.type = TreeNode.type |
| | | this.query() |
| | | }, |
| | | handleSelectionChange(selection) { |
| | | this.selection = selection; |
| | | }, |
| | | add() { |
| | | this?.$refs?.dialogForm?.resetFields() |
| | | Object.keys(this.row).forEach(v => { |
| | | this.row[v] = '' |
| | | }) |
| | | this.dialogTitle = '新增' |
| | | this.dialogVisible = true |
| | | }, |
| | | del() { |
| | | this.$API.setting.component.del({}, { data: this.selection.map(v => v.id) }).then(res => { |
| | | this.query() |
| | | }) |
| | | }, |
| | | save() { |
| | | this.$refs.dialogForm.validate(async (valid) => { |
| | | if (valid) { |
| | | let request = this.$API.setting.interfaceConfig.add |
| | | if (this?.row?.id) { |
| | | request = this.$API.setting.interfaceConfig.update |
| | | } |
| | | request.post(this.row).then(res => { |
| | | this.dialogVisible = false |
| | | this.query() |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | table_del(row) { |
| | | this.$API.setting.component.del({}, { data: [row.id] }).then(res => { |
| | | this.query() |
| | | }) |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | </style> |
| | | <style lang="scss" scoped></style> |