refactor: nladmin-acs init

This commit is contained in:
2024-05-28 09:58:57 +08:00
parent 1179a5f154
commit 024c41fe03
968 changed files with 126008 additions and 3977 deletions

View File

@@ -0,0 +1,132 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="600px">
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="150px">
<el-form-item :label="$t('device.device_table_title.device_name')" prop="key_code">
<el-select
v-model="form.key_code"
style="width: 370px;"
filterable
clearable
:placeholder="$t('auto.common.please')"
>
<el-option
v-for="item in deviceList"
:key="item.device_code"
:label="item.device_name"
:value="item.device_code"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('customPolicy.unit_code')" prop="key_code">
<el-input v-model="form.unit_code" style="width: 370px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">{{ $t('auto.common.Cancel') }}</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">{{ $t('auto.common.Confirm') }}</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column prop="key_code" :label="$t('device.device_table_title.device_name')" />
<el-table-column prop="create_user" :label="$t('auto.common.create_by')" />
<el-table-column prop="update_user" :label="$t('auto.common.update_by')" />
<el-table-column prop="name" :label="$t('customPolicy.unit_name')" />
<el-table-column prop="create_time" :label="$t('auto.common.create_time')" />
<el-table-column prop="update_time" :label="$t('auto.common.update_time')" />
<el-table-column prop="is_on" :label="$t('auto.common.is_on')">
<template slot-scope="scope">
<el-switch
v-model="scope.row.is_on"
active-color="#13ce66"
inactive-color="#ff4949"
:active-value="1"
:inactive-value="0"
@change="updateIsOn(scope.row.id,scope.row.is_on)"
/>
</template>
</el-table-column>
<el-table-column v-permission="['admin','customPolicy:del']" :label="$t('auto.common.Operate')" width="150px" align="center">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
<el-button slot="right" size="mini" style="margin-left: -1px;margin-right: 2px" type="text">
<router-link :to="'/device/customPolicy/task?key_code='+ scope.row.key_code +'&id='+scope.row.id">
{{ $t('customPolicy.title') }}
</router-link>
</el-button>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudCustomPolicy from '@/api/acs/device/customPolicy'
import CRUD, { presenter, header, form, crud } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
import deviceCrud from '@/api/acs/device/device'
import i18n from '@/i18n'
const defaultForm = { id: null, create_time: null, update_time: null, key_code: null, unit_code: ' deviceCustomerDequeStrategy' }
export default {
name: 'CustomPolicy',
// eslint-disable-next-line vue/no-unused-components
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({ title: i18n.t('customPolicy.title'), url: 'api/customPolicy', idField: 'id', sort: 'id,desc', crudMethod: { ...crudCustomPolicy }})
},
data() {
return {
permission: {
add: ['admin', 'customPolicy:add'],
edit: ['admin', 'customPolicy:edit'],
del: ['admin', 'customPolicy:del']
},
deviceList: [],
rules: {
key_code: [
{ required: true, message: '设备号不能为空', trigger: 'blur' }
]
}}
},
created() {
deviceCrud.selectListByType().then(data => {
this.deviceList = data
})
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
},
updateIsOn(id, is_on) {
crudCustomPolicy.updateOn(id, is_on).then(res => {
this.notify('保存成功', 'success')
}).catch(err => {
console.log(err.response.data.message)
})
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,203 @@
<template>
<div>
<el-card class="box-card" shadow="never">
<div slot="header" class="clearfix">
<span class="role-span">设备名称{{ key_code }} </span>
</div>
<div class="crud-opts2" style="margin-bottom: 5px;">
<span class="crud-opts-right2">
<!--左侧插槽-->
<slot name="left" />
<el-button
slot="left"
class="filter-item"
type="primary"
icon="el-icon-plus"
size="mini"
@click="insertdtl()"
>
新增一行
</el-button>
</span>
</div>
<div class="app-container">
<el-table :data="modeform.plans" border fit highlight-current-row style="width: 100%;" class="tb-edit">
<el-table-column label="起始设备" prop="from" width="180">
<template scope="scope">
<el-select
v-model="scope.row.from"
filterable
clearable
placeholder="请选择"
>
<el-option
v-for="item in deviceList"
:key="item.device_code"
:label="item.device_name"
:value="item.device_code"
/>
</el-select>
</template>
</el-table-column>
<el-table-column label="目标设备" prop="to" width="180">
<template scope="scope">
<el-select
v-model="scope.row.to"
filterable
clearable
placeholder="请选择"
>
<el-option
v-for="item in deviceList"
:key="item.device_code"
:label="item.device_name"
:value="item.device_code"
/>
</el-select>
</template>
</el-table-column>
<el-table-column label="数量" prop="quantity" width="180">
<template scope="scope">
<el-input-number v-model="scope.row.quantity" value="0" :min="0" size="mini" />
<span v-show="scope.row.edit">{{ scope.row.quantity }}</span>
</template>
</el-table-column>
<el-table-column label="任务类型" prop="type" width="180">
<template scope="scope">
<el-select
v-model="scope.row.type"
filterable
clearable
placeholder="请选择"
>
<el-option
v-for="item in requestMethodList"
:key="item.code"
:label="item.name"
:value="item.code"
/>
</el-select>
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="170">
<template scope="scope">
<el-button
type="danger"
class="filter-item"
size="mini"
icon="el-icon-delete"
@click.native.prevent="deleteRow(scope.$index, modeform.plans)"
/>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
<el-card class="box-card" shadow="never">
<div slot="header" class="clearfix">
<span class="role-span" />
<el-button
:loading="false"
icon="el-icon-check"
size="mini"
style="float: right; padding: 6px 9px"
type="primary"
@click="doSubmit"
>保存
</el-button>
<el-button
:loading="false"
icon="el-icon-check"
size="mini"
style="float: right; padding: 6px 9px"
type="primary"
@click="back"
>取消
</el-button>
</div>
</el-card>
</div>
</template>
<script>
import { updateConfig, selectById } from '@/api/acs/device/customPolicyType'
import crud from '@/mixins/crud'
import deviceCrud from '@/api/acs/device/device'
import crudCustomPolicy from '@/api/acs/device/customPolicy'
import CRUD from '@crud/crud'
export default {
name: 'CustomPolicyType',
mixins: [crud],
props: {
parentForm: {
type: Object,
require: true
}
},
cruds() {
return CRUD({ title: '自定义策略', url: 'api/customPolicy', idField: 'id', sort: 'id,desc', crudMethod: { ...crudCustomPolicy }})
},
data() {
return {
requestMethodList: [{ code: 1, name: '上架' }, { code: 2, name: '下架' }, { code: 3, name: '摆渡' }],
key_code: this.$route.query.key_code,
id: this.$route.query.id,
deviceList: [],
modeform: {
deviceCode: '',
plans: [
{
from: '',
to: '',
quantity: null,
type: null
}
]
},
rules: {}
}
},
created() {
deviceCrud.selectDeviceList().then(data => {
this.deviceList = data
}),
selectById(this.id).then(data => {
if (data != null && data != '') {
console.log(data)
this.modeform = data
}
})
},
methods: {
insertdtl() {
this.modeform.plans.push({ quantity: '', type: '' })
},
deleteRow(index, rows) {
rows.splice(index, 1)
},
doSubmit() {
updateConfig(this.modeform.plans, this.key_code, this.id).then(res => {
this.notify('保存成功', 'success')
this.configLoading = false
}).catch(err => {
this.configLoading = false
console.log(err.response.data.message)
})
},
[CRUD.HOOK.beforeRefresh]() {
return true
},
back() {
this.$router.push('/devices/customPolicy')
}
}
}
</script>
<style scoped>
</style>