From 34437176cfbc2dc30f786601f5abf27d605e2c15 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 13 四月 2026 20:17:20 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/gtzxinglijicun

---
 admin/src/components/business/OperaGoodsCategoryEditWindow.vue |  204 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 204 insertions(+), 0 deletions(-)

diff --git a/admin/src/components/business/OperaGoodsCategoryEditWindow.vue b/admin/src/components/business/OperaGoodsCategoryEditWindow.vue
new file mode 100644
index 0000000..6736820
--- /dev/null
+++ b/admin/src/components/business/OperaGoodsCategoryEditWindow.vue
@@ -0,0 +1,204 @@
+<template>
+  <GlobalWindow
+    :title="title"
+    :visible.sync="visible"
+    width="500px"
+    :confirm-working="isWorking"
+    @confirm="confirm"
+  >
+    <el-form ref="form" :model="form" :rules="rules">
+      <el-form-item label="绫诲瀷鍚嶇О" prop="name" v-if="form.type === 1">
+        <el-input v-model="form.name" placeholder="璇疯緭鍏ョ被鍨嬪悕绉�"></el-input>
+      </el-form-item>
+      <el-form-item label="琛屾潕绫诲瀷" prop="name" v-if="form.type === 4">
+        <el-input v-model="form.name" placeholder="璇疯緭鍏ヨ鏉庣被鍨�"></el-input>
+      </el-form-item>
+      <el-form-item label="鐗╁搧鍚嶇О" prop="name" v-if="form.type === 2">
+        <el-input v-model="form.name" placeholder="璇疯緭鍏ョ墿鍝佸悕绉�"></el-input>
+      </el-form-item>
+      <el-form-item label="绛夌骇鍚嶇О" prop="name" v-if="form.type === 3">
+        <el-input v-model="form.name" placeholder="璇疯緭鍏ョ瓑绾у悕绉�"></el-input>
+      </el-form-item>
+      <el-form-item label="閫氳鏂瑰紡" prop="detail" v-if="form.type === 1">
+        <el-select v-model="form.detail" placeholder="璇烽�夋嫨閫氳鏂瑰紡">
+          <el-option label="鏈哄姩杞�" value="driving"></el-option>
+          <el-option label="闈炴満鍔ㄨ溅" value="bicycling"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="涓婁紶椹鹃┒璇�" prop="otherField" v-if="form.type === 1">
+        <el-radio-group v-model="form.otherField">
+          <el-radio label="1">闇�瑕�</el-radio>
+          <el-radio label="0">涓嶉渶瑕�</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="鏄惁鐗瑰ぇ灏哄" prop="detail" v-if="form.type === 4">
+        <el-radio-group v-model="form.detail">
+          <el-radio label="0">鍚�</el-radio>
+          <el-radio label="1">鏄�</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="鍥炬爣" prop="iconFull" v-if="form.type === 4">
+        <UploadImages
+          :fileList="form.iconFull ? [{ url: form.iconFull }] : []"
+          :uploadData="{ folder: 'category' }"
+          :maxCount="1"
+          @getFileList="e => { form.icon = e.fileurl; form.iconFull = e.url }"
+          @deleteRow="form.icon = ''; form.iconFull = ''" />
+      </el-form-item>
+      <el-form-item label="鐗╁搧绛夌骇" prop="relationId" v-if="form.type === 2">
+        <el-select v-model="form.relationId" placeholder="璇烽�夋嫨鐗╁搧绛夌骇">
+          <el-option
+            v-for="item in list"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鎵�闇�鍙告満璇勭骇" prop="detail" v-if="form.type === 3">
+        <el-select v-model="form.detail" placeholder="璇烽�夋嫨鍙告満璇勭骇">
+          <el-option label="S" :value="5"></el-option>
+          <el-option label="A" :value="4"></el-option>
+          <el-option label="B" :value="3"></el-option>
+          <el-option label="C" :value="2"></el-option>
+          <el-option label="D" :value="1"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="瀵勫瓨璇存槑" prop="detail" v-if="form.type === 2">
+        <el-input v-model="form.detail" type="textarea" :rows="3" placeholder="璇疯緭鍏ュ瘎瀛樿鏄�"></el-input>
+      </el-form-item>
+      <el-form-item label="澶囨敞璇存槑" prop="remark" v-if="form.type === 3 || form.type === 4">
+        <el-input v-model="form.remark" type="textarea" :rows="3" placeholder="璇疯緭鍏ュ娉ㄨ鏄�"></el-input>
+      </el-form-item>
+      <el-form-item label="鎺掑簭" prop="sortnum">
+        <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴�"></el-input>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <div style="display: flex; align-items: center;">
+          <el-switch
+            v-model="form.status"
+            active-color="#13ce66"
+            inactive-color="#ff4949"
+            :active-value="0"
+            :inactive-value="1"
+          ></el-switch>
+          <span v-if="form.type === 2" style="margin-left: 5px; font-size: 12px; color: #909399;">寮�鍚悗锛岃鍩庡競涓嬮棬搴楀彲琚細鍛樻煡鐪�</span>
+        </div>
+      </el-form-item>
+    </el-form>
+  </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { getById, fetchList } from '@/api/business/goodsCategory'
+import UploadImages from '@/components/common/uploadImages'
+export default {
+  name: 'OperaGoodsCategoryEditWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow, UploadImages },
+  data () {
+    return {
+      form: {
+        id: null,
+        name: '',
+        relationId: '',
+        detail: '',
+        sortnum: '',
+        status: 0,
+        type: '',
+        remark: '',
+        icon: '',
+        iconFull: '',
+        otherField: '1'
+      },
+      rules: {},
+      list: []
+    }
+  },
+  created () {
+    this.config({
+      api: '/business/goodsCategory',
+      'field.id': 'id'
+    })
+  },
+  methods: {
+    open (title, row, type) {
+      this.title = title
+      if (type === 2) {
+        fetchList({
+          capacity: 99999,
+          page: 1,
+          model: {
+            type: 3
+          }
+        }).then(res => {
+          this.list = res.records || []
+        })
+      }
+      if (row && row.id) {
+        getById(row.id).then(res => {
+          this.form = {
+            id: res.id,
+            name: res.name || '',
+            relationId: res.relationId || '',
+            detail: res.detail || '',
+            sortnum: res.sortnum || '',
+            status: res.status ?? 0,
+            type: res.type ?? 2,
+            remark: res.remark || '',
+            icon: res.icon || '',
+            iconFull: res.iconFull || '',
+            otherField: res.otherField || ''
+          }
+          this.visible = true
+        }).catch(e => {
+          this.$tip.apiFailed(e)
+        })
+      } else {
+        this.form = {
+          id: null,
+          name: '',
+          relationId: '',
+          detail: '',
+          sortnum: '',
+          status: 0,
+          type: '',
+          remark: '',
+          icon: '',
+          iconFull: '',
+          otherField: '1'
+        }
+        if (type === 4) {
+          this.form.detail = '0'
+        }
+        this.form.type = type
+        this.visible = true
+      }
+      if (this.form.type === 2) {
+        this.rules = {
+          name: [{ required: true, message: '璇疯緭鍏ョ墿鍝佸悕绉�', trigger: 'blur' }],
+          relationId: [{ required: true, message: '璇烽�夋嫨鐗╁搧绛夌骇', trigger: 'blur' }]
+        }
+      } else if (this.form.type === 3) {
+        this.rules = {
+          name: [{ required: true, message: '璇疯緭鍏ョ瓑绾у悕绉�', trigger: 'blur' }],
+          detail: [{ required: true, message: '璇烽�夋嫨鍙告満璇勭骇', trigger: 'blur' }]
+        }
+      } else if (this.form.type === 4) {
+        this.rules = {
+          name: [{ required: true, message: '璇疯緭鍏ヨ鏉庣被鍨�', trigger: 'blur' }],
+          detail: [{ required: true, message: '璇烽�夋嫨鏄惁鐗瑰ぇ灏哄', trigger: 'blur' }],
+          icon: [{ required: true, message: '璇蜂笂浼犲浘鏍�', trigger: 'blur' }]
+        }
+      } else if (this.form.type === 1) {
+        this.rules = {
+          name: [{ required: true, message: '璇疯緭鍏ョ被鍨嬪悕绉�', trigger: 'blur' }],
+          detail: [{ required: true, message: '璇烽�夋嫨閫氳鏂瑰紡', trigger: 'blur' }],
+          otherField: [{ required: true, message: '璇烽�夋嫨閫氳鏂瑰紡', trigger: 'blur' }]
+        }
+      }
+    }
+  }
+}
+</script>

--
Gitblit v1.9.3