Bläddra i källkod

数控程序管理

damon227 1 år sedan
förälder
incheckning
9fdc5cb91d
3 ändrade filer med 486 tillägg och 0 borttagningar
  1. 10 0
      src/api/program.js
  2. 190 0
      src/views/modules/tech/program-add-or-update.vue
  3. 286 0
      src/views/modules/tech/program.vue

+ 10 - 0
src/api/program.js

@@ -0,0 +1,10 @@
+import request from '@/utils/httpRequest'
+
+// 数据程序管理列表
+export function getList (params) {
+  return request({
+    url: request.adornUrl(`/biz-service/pro-program/list`),
+    method: 'get',
+    params: params
+  })
+}

+ 190 - 0
src/views/modules/tech/program-add-or-update.vue

@@ -0,0 +1,190 @@
+<template>
+  <div>
+    <div class="my-title">{{ !id ? "新增" : "修改" }}</div>
+    <el-form
+      :model="dataForm"
+      :rules="dataRule"
+      ref="dataForm"
+      label-width="180px"
+    >
+      <el-row>
+        <el-col :span="6">
+          <el-form-item label="物料名称" prop="productName">
+            <el-select
+              v-model="dataForm.productName"
+              filterable
+              remote
+              clearable
+              placeholder="请选择"
+            >
+              <el-option
+                v-for="item in materialList"
+                :key="item.materialId"
+                :label="item.materialName"
+                :value="item.materialName"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="程序编码" prop="programCode">
+            <el-input
+              v-model="dataForm.programCode"
+              placeholder="请输入"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="12">
+          <el-form-item label="程序说明" prop="programInstructions">
+            <el-input
+              v-model="dataForm.programInstructions"
+              placeholder="请输入"
+              type="textarea"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="备注说明" prop="remark">
+            <el-input
+              v-model="dataForm.remark"
+              placeholder="请输入"
+              type="textarea"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+            <el-form-item label="程序包" prop="cxbList">
+            <upload-component
+              :display="false"
+              :displayStar="false"
+              :accept="'*'"
+              v-model="dataForm.cxbList"
+              @uploadSuccess="uploadSuccess"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="8" :offset="4">
+            <el-form-item label="数控加工程序单" prop="skjgList">
+            <upload-component
+              :display="false"
+              :displayStar="false"
+              :accept="'*'"
+              v-model="dataForm.skjgList"
+              @uploadSuccess="uploadSuccess"
+            />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+            <el-form-item label="防真验证情况记录表" prop="fzyzList">
+            <upload-component
+              :display="false"
+              :displayStar="false"
+              :accept="'*'"
+              v-model="dataForm.fzyzList"
+              @uploadSuccess="uploadSuccess"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="8" :offset="4">
+            <el-form-item label="数控加工程序试切鉴定表" prop="cxsqList">
+            <upload-component
+              :display="false"
+              :displayStar="false"
+              :accept="'*'"
+              v-model="dataForm.cxsqList"
+              @uploadSuccess="uploadSuccess"
+            />
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="onChose">取消</el-button>
+      <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
+    </span>
+  </div>
+</template>
+
+<script>
+import { getMaterialList } from '@/api/material'
+import uploadComponent from '../common/upload-component-v2'
+export default {
+  name: 'program-add-or-update',
+  components: {uploadComponent},
+  data () {
+    return {
+      id: 0,
+      dataForm: {},
+      materialList: [],
+      dataRule: {
+        productName: [{required: true, message: '请选择物料名称', trigger: 'change'}],
+        programCode: [{required: true, message: '请输入程序编码', trigger: 'blur'}],
+        programInstructions: [{required: true, message: '请输入程序说明', trigger: 'blur'}],
+        cxbList: [{required: true, message: '请上传文件', trigger: 'blur'}],
+        skjgList: [{required: true, message: '请上传文件', trigger: 'blur'}],
+        fzyzList: [{required: true, message: '请上传文件', trigger: 'blur'}],
+        cxsqList: [{required: true, message: '请上传文件', trigger: 'blur'}]
+      }
+    }
+  },
+  created () {
+    this.getMaterialList()
+  },
+  methods: {
+    init (id, item) {
+      this.id = id || 0
+      if (item) {
+        this.dataForm = {...item}
+      }
+    },
+    onChose () {
+      this.$emit('onChose')
+    },
+    getMaterialList () {
+      getMaterialList().then(({ data }) => {
+        if (data && data.code === '200') {
+          this.materialList = data.data.records
+        }
+      })
+    },
+    dataFormSubmit () {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          this.$http({
+            url: !this.id
+              ? this.$http.adornUrl(`/biz-service/pro-program/save`)
+              : this.$http.adornUrl(`/biz-service/pro-program/update`),
+            method: 'post',
+            data: this.$http.adornData({ ...this.dataForm, orgId: this.orgId })
+          }).then(({ data }) => {
+            if (data && data.code === '200') {
+              this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 1500,
+                onClose: () => {
+                  this.onChose()
+                  this.$emit('refreshDataList')
+                }
+              })
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+        }
+      })
+    },
+    uploadSuccess () {}
+  }
+}
+</script>
+
+<style>
+</style>

+ 286 - 0
src/views/modules/tech/program.vue

@@ -0,0 +1,286 @@
+<!-- 数控程序管理 -->
+<template>
+  <div>
+    <template v-if="!addOrUpdateVisible && !detailVisible">
+      <el-form
+        :inline="true"
+        :model="dataForm"
+        @keyup.enter.native="queryData()"
+      >
+        <el-form-item label="程序编号">
+          <el-input
+            v-model="dataForm.programCode"
+            placeholder="请输入程序编号"
+            clearable
+          />
+        </el-form-item>
+        <el-form-item label="物料名称">
+          <el-select
+            v-model="dataForm.productName"
+            filterable
+            remote
+            clearable
+            placeholder="请选择"
+          >
+            <el-option
+              v-for="item in materialList"
+              :key="item.materialId"
+              :label="item.materialName"
+              :value="item.materialName"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="创建日期">
+          <el-date-picker
+            v-model="dataForm.startTime"
+            value-format="yyyy-MM-dd"
+            type="date"
+            style="width: 100%"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="queryData()">查询</el-button>
+          <el-button
+            v-if="isAuth('pro:worktype:save')"
+            type="primary"
+            @click="addOrUpdateHandle(0, false)"
+            >新建</el-button
+          >
+        </el-form-item>
+      </el-form>
+      <el-table :data="dataList" border v-loading="dataListLoading" style="width:100%">
+        <el-table-column label="序号" type="index" width="50" align="center"></el-table-column>
+        <el-table-column
+            prop="programCode"
+            header-align="center"
+            align="center"
+            min-width="140"
+            :show-tooltip-when-overflow="true"
+            label="程序编码"
+        >
+        </el-table-column>
+        <el-table-column
+            prop="programInstructions"
+            header-align="center"
+            align="center"
+            min-width="140"
+            :show-tooltip-when-overflow="true"
+            label="程序说明"
+        >
+        </el-table-column>
+        <el-table-column
+            prop="productName"
+            header-align="center"
+            align="center"
+            min-width="140"
+            :show-tooltip-when-overflow="true"
+            label="物料名称"
+        >
+        </el-table-column>
+        <el-table-column
+            prop="cxbList"
+            header-align="center"
+            align="center"
+            min-width="140"
+            :show-tooltip-when-overflow="true"
+            label="程序包"
+        >
+            <template slot-scope="scope">
+                <el-button
+                  :disabled="
+                    !scope.row.cxbList || scope.row.cxbList.length === 0
+                  "
+                  type="text"
+                  size="small"
+                  @click="attachDetails(scope.row.cxbList)"
+                  >查看</el-button
+                >
+            </template>
+        </el-table-column>
+        <el-table-column
+            prop="fzyzList"
+            header-align="center"
+            align="center"
+            min-width="120"
+            :show-tooltip-when-overflow="true"
+            label="防真验证情况记录表"
+        >
+            <template slot-scope="scope">
+                <el-button
+                  :disabled="
+                    !scope.row.fzyzList || scope.row.fzyzList.length === 0
+                  "
+                  type="text"
+                  size="small"
+                  @click="attachDetails(scope.row.fzyzList)"
+                  >查看</el-button
+                >
+            </template>
+        </el-table-column>
+        <el-table-column
+            prop="cxsqList"
+            header-align="center"
+            align="center"
+            min-width="120"
+            :show-tooltip-when-overflow="true"
+            label="数控加工程序试切鉴定表"
+        >
+            <template slot-scope="scope">
+                <el-button
+                  :disabled="
+                    !scope.row.cxsqList || scope.row.cxsqList.length === 0
+                  "
+                  type="text"
+                  size="small"
+                  @click="attachDetails(scope.row.cxsqList)"
+                  >查看</el-button
+                >
+            </template>
+        </el-table-column>
+        <el-table-column
+            prop="skjgList"
+            header-align="center"
+            align="center"
+            min-width="120"
+            :show-tooltip-when-overflow="true"
+            label="数控加工程序单"
+        >
+            <template slot-scope="scope">
+                <el-button
+                  :disabled="
+                    !scope.row.skjgList || scope.row.skjgList.length === 0
+                  "
+                  type="text"
+                  size="small"
+                  @click="attachDetails(scope.row.skjgList)"
+                  >查看</el-button
+                >
+            </template>
+        </el-table-column>
+        <el-table-column
+            prop="remark"
+            header-align="center"
+            align="center"
+            min-width="140"
+            :show-tooltip-when-overflow="true"
+            label="备注"
+        >
+        </el-table-column>
+        <el-table-column
+            prop="createTime"
+            header-align="center"
+            align="center"
+            min-width="180"
+            :show-tooltip-when-overflow="true"
+            label="创建时间"
+        >
+        </el-table-column>
+        <el-table-column
+            prop="creatorId"
+            header-align="center"
+            align="center"
+            min-width="140"
+            :show-tooltip-when-overflow="true"
+            label="创建人"
+        >
+        </el-table-column>
+        <el-table-column
+            fixed="right"
+            header-align="center"
+            align="center"
+            width="180"
+            label="操作"
+        >
+            <template slot-scope="scope">
+                <el-button
+                    type="text"
+                    size="small"
+                    @click="showDetail(scope.row.taskId)"
+                    >查看</el-button>
+                <el-button
+                    v-if="isAuth('work:clt:start')"
+                    type="text"
+                    size="small"
+                    @click="addOrUpdateHandle(scope.row.taskId, scope.row)"
+                    >编辑</el-button>
+            </template>
+        </el-table-column>
+      </el-table>
+    </template>
+    <attach-detail-dialog ref="attachDetail" />
+    <program-add-or-update ref="addOrUpdate" v-if="addOrUpdateVisible"></program-add-or-update>
+  </div>
+</template>
+
+<script>
+import { getMaterialList } from '@/api/material'
+import { getList } from '@/api/program'
+import AttachDetailDialog from '../common/attach-detail-dialog'
+import ProgramAddOrUpdate from './program-add-or-update'
+export default {
+  name: 'program',
+  components: {AttachDetailDialog, ProgramAddOrUpdate},
+  data () {
+    return {
+      addOrUpdateVisible: false,
+      detailVisible: false,
+      dataForm: {},
+      dataList: [],
+      materialList: [],
+      pageIndex: 1,
+      pageSize: 10,
+      totalPage: 0,
+      dataListLoading: false
+    }
+  },
+  created () {
+    this.queryData()
+    this.getMaterialList()
+  },
+  methods: {
+    onChose () {
+      this.addOrUpdateVisible = false
+      this.detailVisible = false
+    },
+    getMaterialList () {
+      getMaterialList().then(({ data }) => {
+        if (data && data.code === '200') {
+          this.materialList = data.data.records
+        }
+      })
+    },
+    // 查询
+    queryData () {
+      this.pageIndex = 1
+      this.getDataList()
+    },
+    getDataList () {
+      let param = {
+        current: this.pageIndex,
+        size: this.pageSize,
+        ...this.dataForm
+      }
+      getList(param).then(({data}) => {
+        if (data && data.code === '200') {
+          this.dataList = data.data.records
+        }
+      })
+    },
+    addOrUpdateHandle (id, item) {
+      this.addOrUpdateVisible = true
+      this.$nextTick(() => {
+        this.$refs.addOrUpdate.init(id, item)
+      })
+    },
+    showDetail (id) {},
+    attachDetails (attachList) {
+      this.$refs.attachDetail.init(attachList)
+    }
+  }
+}
+</script>
+
+<style scoped>
+</style>