haoxuan
2023-11-06 39864dcc835f1e75efd3f20a99d50a7edae4a94f
src/views/dashboard/index.vue
@@ -26,8 +26,11 @@
                <ProcessInfo
                  v-for="item in craftModelStore.craftModelList"
                  :key="item.ID"
                  :task="activeTask"
                  :active-arr="activeArr"
                  :craft-model="item"
                  @detail="openCraftModelDetailModal"
                  @update="updateCraft"
                ></ProcessInfo>
              </div>
              <div class="craft-loaded-tip">
@@ -80,13 +83,21 @@
      <BigButton class="btn" bg-color="red">红灯呼叫</BigButton>
    </template>
  </DashboardLayout>
  <CraftDetailModal v-model="showCraftModelDetail" @close="showCraftModelDetail = false"></CraftDetailModal>
  <CraftDetailModal
    v-model="showCraftModelDetail"
    :active-arr="activeArr"
    :craft-model="currentCraftModelInfo"
    @renew="updateCraft"
    @close="showCraftModelDetail = false"
  ></CraftDetailModal>
  <MaterialDetails v-model="showMaterialDetail" :material="currentMaterialInfo"></MaterialDetails>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import ChannelCollapse from '@/views/dashboard/components/ChannelCollapse.vue'
import type { Task, Material } from '@/api/task'
import type { Worker, Order, Task, Material } from '@/api/task'
import type { CraftModel } from '@/api/craftModel'
import PersonInfo from '@/views/dashboard/components/PersonInfo.vue'
import ProcessInfo from '@/views/dashboard/components/ProcessInfo.vue'
import ColorInfo from '@/views/dashboard/components/ColorInfo.vue'
@@ -110,6 +121,8 @@
import { useCraftModelStore } from '@/stores/craftModel'
import CraftDetailModal from '@/views/dashboard/components/CraftDetailModal.vue'
import MaterialDetails from '@/views/dashboard/components/MaterialDetails.vue'
import { updateCraftParams } from '@/api'
import { Loading } from '@element-plus/icons-vue'
defineOptions({
@@ -170,9 +183,43 @@
craftModelStore.getCraftModelList()
const showCraftModelDetail = ref(false)
function openCraftModelDetailModal() {
// 当前要展示的工艺详情
const currentCraftModelInfo = ref<CraftModel>()
const activeArr = ref([])
function openCraftModelDetailModal(craftModel: CraftModel) {
  currentCraftModelInfo.value = craftModel
  showCraftModelDetail.value = true
}
// 更新工艺
function updateCraft(craftModel: CraftModel) {
  if (activeTask?.value?.Procedure?.ID) {
    activeArr.value.push(craftModel.number)
    updateCraftParams({ procedureId: activeTask!.value.Procedure.ID }).then(
      (res) => {
        if (res.code == 200) {
          editActive(craftModel)
          ElMessage({
            message: '更新成功!',
            type: 'success'
          })
        }
      },
      (err) => {
        console.error(err, '----err')
        setTimeout(() => {
          editActive(craftModel)
        }, 500)
      }
    )
  }
}
function editActive(craftModel: CraftModel) {
  for (let i in activeArr.value) {
    if (activeArr.value[i] == craftModel.number) {
      activeArr.value.splice(i, 1)
    }
  }
}
// 是否展示物料详情弹窗
const showMaterialDetail = ref(false)