1
李喆(开发组)
2025-06-16 c9309667c0f061660866dc7b7e30f7c0fdd5e94d
src/views/basesetting/machine.vue
@@ -16,12 +16,13 @@
      @on-load="onLoad"
    >
      <template #menu-left>
        <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleView">导出</el-button>
        <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleExport">导出</el-button>
        <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleView">导入</el-button>
        <!-- <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleAdd">新增</el-button> -->
      </template>
      <template #menu="scope">
        <el-button type="primary" text size="default" icon="el-icon-upload" @click.stop="handleEdit(scope.row, scope.index)">编辑</el-button>
        <el-button type="primary" text size="default" icon="el-icon-upload" @click.stop="handleView(scope.row, scope.index)">删除</el-button>
        <el-button type="primary" text size="default" icon="el-icon-upload" @click.stop="handleDel(scope.row, scope.index)">删除</el-button>
        <el-button type="primary" text size="default" icon="el-icon-upload" @click.stop="handleView(scope.row, scope.index)">产生机床回传机构树</el-button>
      </template>
@@ -30,17 +31,24 @@
      </template>
    </avue-crud>
    <el-dialog title="编辑" append-to-body v-model="editBox" width="60%">
      <avue-form ref="editFormModal" :option="editFormModal" v-model="form" @submit="formSubmit" />
    <el-dialog :title="machineTitle" append-to-body v-model="editBox" width="60%">
      <avue-form ref="editFormModal1" :option="editFormModal" v-model="editForm" @submit="formSubmit" @resetForm="resetForm"/>
    </el-dialog>
  </basic-container>
</template>
<script>
import { exportBlob } from '@/api/common';
import { getToken } from '@/utils/auth';
import NProgress from 'nprogress';
import { downloadXls } from '@/utils/util';
import 'nprogress/nprogress.css';
export default {
  data() {
    var that = this;
    return {
      machineTitle: "新增",
      isAdd: true,
      editBox: false,
      search: {
        keyword: "",
@@ -52,6 +60,7 @@
        current: 1,
        total: 0,
      },
      editForm: {},
      option: {
        index: true,
        addBtn: false,
@@ -122,17 +131,17 @@
          },
          {
            label: '机床型号',
            prop: '',
            prop: 'name',
            type: 'input',
            span: 12,
            dataType: 'string',
          },
          {
            label: '机床类型',
            prop: '',
            prop: 'machineSpec',
            type: 'select',
            span: 12,
            dicUrl: '/blade-system/dict-biz/dictionary?code=machine_group',
            dicUrl: '/blade-system/dict-biz/dictionary?code=machine_spec',
            props: {
              label: 'dictValue',
              value: 'dictKey',
@@ -140,7 +149,7 @@
          },
          {
            label: '所属机床组',
            prop: '',
            prop: 'machineGroupCode',
            type: 'select',
            span: 12,
            dicUrl: '/blade-system/dict-biz/dictionary?code=machine_group',
@@ -151,39 +160,39 @@
          },
          {
            label: '操作员',
            prop: '',
            prop: 'operator',
            type: 'input',
            span: 12,
            dataType: 'string',
          },
          {
            label: '所属组织',
            prop: '',
            type: 'select',
            prop: 'ownerDept',
            type: 'tree',
            span: 12,
            dicUrl: '/blade-system/dict-biz/dictionary?code=machine_group',
            props: {
              label: 'dictValue',
              value: 'dictKey',
            }
              label: 'deptName',
              value: 'id'
            },
            dicUrl: `/blade-system/dept/lazy-list`
          },
          {
            label: '生产商',
            prop: '',
            prop: 'manufacturer',
            type: 'input',
            span: 12,
            dataType: 'string',
          },
          {
            label: '轮询时间(小时)',
            prop: '',
            prop: 'pollingHours',
            type: 'input',
            span: 12,
            dataType: 'string',
          },
          {
            label: '系统控制',
            prop: '',
            prop: 'controlSystem',
            type: 'select',
            span: 12,
            dicUrl: '/blade-system/dict-biz/dictionary?code=machine_control_system',
@@ -194,7 +203,7 @@
          },
          {
            label: '状态',
            prop: 'checkbox',
            prop: 'status',
            type: 'checkbox',
            span: 12,
            dicData: [{
@@ -204,21 +213,21 @@
          },
          {
            label: '程序下发目录',
            prop: '',
            prop: 'progSendDir',
            type: 'input',
            span: 12,
            dataType: 'string',
          },
          {
            label: '程序回传目录',
            prop: '',
            prop: 'progReceiveDir',
            type: 'input',
            span: 12,
            dataType: 'string',
          },
          {
            label: '备注',
            prop: '',
            prop: 'remark',
            type: 'textarea',
            span: 24,
            dataType: 'string',
@@ -229,11 +238,98 @@
    };
  },
  methods: {
    handleEdit() {
    handleAdd() {
      this.machineTitle = "新增";
      this.isAdd = true;
      this.editBox = true;
      this.$refs.editFormModal1.resetForm();
    },
    formSubmit() {
    handleEdit(row,index) {
      this.machineTitle = "编辑";
      this.isAdd = false;
      axios({
        url: '/blade-mdm/machine/detail',
        method: 'get',
        params: {id: row.id},
      }).then(
        res => {
          res.data.data.status = [res.data.data.status];
          this.editForm = res.data.data;
          this.editBox = true;
        },
        error => {
        }
      );
    },
    handleDel(row,index) {
      this.loading = true;
      axios({
        url: '/blade-mdm/machine/remove',
        method: 'post',
        params: {ids: row.id},
      }).then(
        res => {
          this.loading = false;
          this.$message({
            type: 'success',
            message: '操作成功!',
          });
          this.onLoad();
          done();
        },
        error => {
        }
      );
    },
    handleExport() {
      this.$confirm('是否导出?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      }).then(() => {
        NProgress.start();
        exportBlob(
          `/blade-mdm/machine/export?${this.website.tokenHeader}=${getToken()}`
        ).then(res => {
          downloadXls(res.data, `导出机床${this.$dayjs().format('YYYY-MM-DD HH:mm:ss')}.xlsx`);
          NProgress.done();
        });
      });
    },
    formSubmit(params, done) {
      var obj = {...params};
      if(params.status.length == 0) {
        obj.status = "0";
      }else {
        obj.status = "1";
      }
      if(this.isAdd) {  //新增
        var url = '/blade-mdm/machine/save';
      }else {
        var url = '/blade-mdm/machine/update';
      }
      this.loading = true;
      axios({
        url: url,
        method: 'post',
        data: obj,
      }).then(
        res => {
          this.loading = false;
          this.$message({
            type: 'success',
            message: '操作成功!',
          });
          this.editBox = false;
          this.onLoad();
          done();
        },
        error => {
        }
      );
    },
    handleView() {
@@ -255,7 +351,7 @@
    refreshChange() {
      
    },
    onLoad(page, params = {}) {
    onLoad() {
      this.loading = true;
      var obj = {
        keyword: this.search.keyword,
@@ -278,6 +374,7 @@
            
        }
      );
    }
  },
};