feat(custom): 新增消息订阅
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-08-27 17:06:59 +08:00
parent f199320de0
commit 1d8532eccf
104 changed files with 2350 additions and 2477 deletions

View File

@@ -1,19 +1,19 @@
<script lang="ts" setup>
import Taro from "@tarojs/taro";
import { Ref, ref } from "vue";
import Upload from "../../../components/Upload.vue";
import RichEditor from "../../../components/RichEditor.vue";
import { addGood } from "@/api/product";
import Taro from '@tarojs/taro';
import {Ref, ref} from 'vue';
import Upload from '../../../components/Upload.vue';
import RichEditor from '../../../components/RichEditor.vue';
import {addGood} from '@/api/product';
const ruleForm = ref(null) as Ref;
const basicData = ref({
name: "",
name: '',
class_id: null,
cover: [],
rotation: [],
profile: "",
details: "",
profile: '',
details: '',
stock: null,
number: null,
market_num: null,
@@ -24,20 +24,20 @@ const rules = {
name: [
{
required: true,
message: "请填写商品名称",
message: '请填写商品名称',
},
],
class_id: [
{
required: true,
message: "请选择商品分类",
message: '请选择商品分类',
},
],
cover: [
{
required: true,
message: "请上传商品封面",
validator: (value) => {
message: '请上传商品封面',
validator: value => {
return value.length > 0;
},
},
@@ -45,8 +45,8 @@ const rules = {
rotation: [
{
required: true,
message: "请上传商品轮播图",
validator: (value) => {
message: '请上传商品轮播图',
validator: value => {
return value.length > 0;
},
},
@@ -54,32 +54,32 @@ const rules = {
profile: [
{
required: true,
message: "请填写商品名称",
message: '请填写商品名称',
},
],
stock: [
{
required: true,
message: "请填写商品库存",
message: '请填写商品库存',
},
],
number: [
{
required: true,
message: "请填写商品价格",
message: '请填写商品价格',
},
],
market_num: [
{
required: true,
message: "请填写商品市场价",
message: '请填写商品市场价',
},
],
};
const columnsClass = ref([]);
Taro.useLoad((options) => {
Taro.useLoad(options => {
console.log(options);
});
@@ -90,11 +90,11 @@ const confirmClass = (val: any) => {
};
const ok = async () => {
ruleForm.value.validate().then(({ valid, errors }: any) => {
ruleForm.value.validate().then(({valid, errors}: any) => {
if (valid) {
console.log("success", basicData.value);
console.log('success', basicData.value);
} else {
console.log("error submit!!", errors);
console.log('error submit!!', errors);
}
});
};
@@ -111,8 +111,7 @@ const ok = async () => {
v-model="basicData.class_id"
disabled
placeholder="请选择商品分类"
@click="openGoodClass = true"
/>
@click="openGoodClass = true" />
</nut-form-item>
<nut-form-item label="商品封面:" required prop="cover">
<Upload v-model:list="basicData.cover" />
@@ -124,20 +123,17 @@ const ok = async () => {
<nut-input
v-model="basicData.name"
placeholder="请输入商品名称"
type="text"
/>
type="text" />
</nut-form-item>
<nut-form-item label="商品价格:" required prop="number">
<nut-input
v-model="basicData.number"
placeholder="请输入商品价格"
/>
placeholder="请输入商品价格" />
</nut-form-item>
<nut-form-item label="市场价格:" required prop="market_num">
<nut-input
v-model="basicData.market_num"
placeholder="请输入市场价格"
/>
placeholder="请输入市场价格" />
</nut-form-item>
<nut-form-item label="商品库存:" required prop="stock">
<nut-input v-model="basicData.stock" placeholder="请输入商品库存" />
@@ -147,21 +143,18 @@ const ok = async () => {
class="textarea"
v-model="basicData.profile"
placeholder="请输入商品简介"
type="text"
/>
type="text" />
</nut-form-item>
<nut-form-item label="上架状态:" prop="state">
<nut-switch
v-model="basicData.state"
:active-value="1"
:inactive-value="2"
/>
:inactive-value="2" />
</nut-form-item>
<nut-form-item prop="details">
<RichEditor
:content="basicData.details"
@input="(val) => (basicData.details = val)"
/>
@input="val => (basicData.details = val)" />
</nut-form-item>
<nut-form-item prop="ok">
<nut-button block type="primary" @click="ok">提交</nut-button>
@@ -173,13 +166,11 @@ const ok = async () => {
<nut-popup
position="bottom"
v-model:visible="openGoodClass"
@close="openGoodClass = false"
>
@close="openGoodClass = false">
<nut-picker
:columns="columnsClass"
title="商品分类"
@confirm="confirmClass"
></nut-picker>
@confirm="confirmClass"></nut-picker>
</nut-popup>
</view>
</template>