PersonClusterEditor.vue 3.88 KB
<template>
  <a-modal
    title="抓拍修正"
    v-if="isVisible"
    v-model:visible="isVisible"
    width="400px"
    height="50%"
    class="detail-modal"
  >
    <a-form :model="formData">
      <a-form-item label="年龄">
        <a-input-number
          v-model:value="formData.age"
          :min="1"
          :max="200"
          style="width: 100%"
        />
      </a-form-item>
      <a-form-item label="性别">
        <a-select v-model:value="formData.gender" :allowClear="true">
          <a-select-option :value="0"></a-select-option>
          <a-select-option :value="1"></a-select-option>
        </a-select>
      </a-form-item>
      <a-form-item label="方向">
        <a-select
          v-model:value="formData.direction"
        >
          <a-select-option :value="1"></a-select-option>
          <a-select-option :value="-1"></a-select-option>
          <a-select-option :value="0">横穿</a-select-option>
          <a-select-option :value="2">过店</a-select-option>
          <a-select-option :value="4">从左到右</a-select-option>
          <a-select-option :value="5">从右到左</a-select-option>
          <a-select-option :value="7">关注</a-select-option>
          <a-select-option :value="8">触达</a-select-option>
        </a-select>
      </a-form-item>

      <a-form-item label="类型">
        <a-select
          v-model:value="formData.type"
          :options="personTypeList"
          optionFilterProp="label"
          :allowClear="true"
        ></a-select>
      </a-form-item>

      <a-form-item label="通道">
        <a-select v-model:value="formData.channelSerialnum" :allowClear="true"  show-search>
          <a-select-option v-for="item in serielList" :key="item.serialnum" :value="item.serialnum">{{ item.serialnum }}</a-select-option>
        </a-select>
      </a-form-item>
    </a-form>

    <template #footer>
      <a-button type="primary" @click="onSave">保存</a-button>
      <a-button @click="onCancel">关闭</a-button>
    </template>
  </a-modal>
</template>

<script>
import { ref } from "vue";
import clusterResultApi from "@/views/SnapshotCluster/ClusterResult/ClusterResultApi";
import { ElMessage } from "element-plus";

export default {
  name: "PersonClusterEditor",
  props: {
    personTypeList: {
      type: Array,
      default: () => [],
    },
  },
  setup(props, { emit }) {
    const isVisible = ref(false);
    // 表单

    const formData = ref({});
    const initDialog = (data) => {
      console.log("initDialog", data);
      getChannelSerielList()
      formData.value = {
        mallId: data.mall_id,
        age: data.age,
        gender: data.gender,
        type: data.person_type,
        countdate: data.counttime,
        direction: data.direction,
        channelSerialnum: data.channel_serialnum,
        unid: data.person_unid,
      };
      isVisible.value = true;
    };
    const serielList = ref([])
    const getChannelSerielList = () => {
      clusterResultApi.getChannelSerielNumApi().then((r) => {
        if (r.msg_code == 200) {
          serielList.value = r.data || []
        } else {
          ElMessage({
            message: `获取通道列表失败`,
            type: "error",
          });
        }
      });
    };

    const onCancel = () => {
      isVisible.value = false;
    };
    const onSave = () => {
      clusterResultApi.updateClusterPerson(formData.value).then((r) => {
        if (r.msg_code == 200) {
          ElMessage({
            message: `保存成功`,
            type: "success",
          });
          // 刷新列表
          emit("refresh");
          onCancel();
        } else {
          ElMessage({
            message: `保存失败`,
            type: "error",
          });
        }
      });
    };

    return {
      isVisible,
      formData,
      onSave,
      serielList,
      onCancel,
      initDialog
    };
  },
};
</script>

<style lang="less" scoped></style>