神仙都没用 8 miesięcy temu
rodzic
commit
bf19501818

+ 0 - 146
src/modules/user/views/address.vue

@@ -1,146 +0,0 @@
-<template>
-	<cl-crud ref="Crud">
-		<cl-row>
-			<!-- 刷新按钮 -->
-			<cl-refresh-btn />
-			<!-- 新增按钮 -->
-			<cl-add-btn />
-			<!-- 删除按钮 -->
-			<cl-multi-delete-btn />
-			<cl-flex1 />
-			<!-- 关键字搜索 -->
-			<cl-search-key />
-		</cl-row>
-
-		<cl-row>
-			<!-- 数据表格 -->
-			<cl-table ref="Table" />
-		</cl-row>
-
-		<cl-row>
-			<cl-flex1 />
-			<!-- 分页控件 -->
-			<cl-pagination />
-		</cl-row>
-
-		<!-- 新增、编辑 -->
-		<cl-upsert ref="Upsert" />
-	</cl-crud>
-</template>
-
-<script lang="ts" name="user-address" setup>
-import { useCrud, useTable, useUpsert } from '@cool-vue/crud';
-import { useCool } from '/@/cool';
-
-const { service } = useCool();
-
-// cl-upsert
-const Upsert = useUpsert({
-	items: [
-		{
-			label: '用户ID',
-			prop: 'userId',
-			hook: 'number',
-			component: { name: 'el-input-number' },
-			required: true
-		},
-		{
-			label: '用户名',
-			prop: 'username',
-			component: { name: 'el-input', props: { clearable: true } },
-			required: true
-		},
-		{
-			label: '收货人',
-			prop: 'receiver',
-			component: { name: 'el-input', props: { clearable: true } },
-			required: true
-		},
-		{
-			label: '手机号',
-			prop: 'phone',
-			component: { name: 'el-input', props: { clearable: true } },
-			required: true
-		},
-		{
-			label: '省市区',
-			prop: 'pca',
-			hook: 'pca',
-			component: { name: 'cl-distpicker' },
-			required: true
-		},
-		{
-			label: '收货地址',
-			prop: 'address',
-			component: {
-				name: 'el-input',
-				props: { type: 'textarea', rows: 4 }
-			},
-			required: true
-		},
-		{
-			label: '是否默认',
-			prop: 'isDefault',
-			flex: false,
-			component: { name: 'cl-switch' },
-			required: true
-		}
-	]
-});
-
-// cl-table
-const Table = useTable({
-	columns: [
-		{ type: 'selection' },
-		{ label: '用户ID', prop: 'userId', minWidth: 140 },
-		{ label: '用户名', prop: 'username', minWidth: 140 },
-		{ label: '收货人', prop: 'receiver', minWidth: 140 },
-		{ label: '手机号', prop: 'phone', minWidth: 140 },
-		{
-			label: '省市区',
-			prop: 'province',
-			minWidth: 160,
-			formatter(row) {
-				return row.province + '-' + row.city + '-' + row.district;
-			}
-		},
-		{
-			label: '收货地址',
-			prop: 'address',
-			showOverflowTooltip: true,
-			minWidth: 200
-		},
-		{
-			label: '是否默认',
-			prop: 'isDefault',
-			minWidth: 100,
-			component: { name: 'cl-switch' }
-		},
-		{
-			label: '创建时间',
-			prop: 'createTime',
-			minWidth: 170,
-			sortable: 'custom',
-			component: { name: 'cl-date-text' }
-		},
-		{
-			label: '更新时间',
-			prop: 'updateTime',
-			minWidth: 170,
-			sortable: 'custom',
-			component: { name: 'cl-date-text' }
-		},
-		{ type: 'op', buttons: ['edit', 'delete'] }
-	]
-});
-
-// cl-crud
-const Crud = useCrud(
-	{
-		service: service.user.address
-	},
-	app => {
-		app.refresh();
-	}
-);
-</script>

+ 0 - 216
src/modules/user/views/info.vue

@@ -1,216 +0,0 @@
-<template>
-	<cl-crud ref="Crud">
-		<cl-row>
-			<!-- 刷新按钮 -->
-			<cl-refresh-btn />
-			<!-- 删除按钮 -->
-			<cl-multi-delete-btn />
-			<!-- 登录方式 -->
-			<cl-filter label="登录方式">
-				<cl-select :options="options.loginType" prop="loginType" :width="120" />
-			</cl-filter>
-			<!-- 性别 -->
-			<cl-filter label="性别">
-				<cl-select :options="options.gender" prop="gender" :width="120" />
-			</cl-filter>
-			<!-- 状态 -->
-			<cl-filter label="状态">
-				<cl-select :options="options.status" prop="status" :width="120" />
-			</cl-filter>
-			<cl-flex1 />
-			<!-- 关键字搜索 -->
-			<cl-search-key placeholder="搜索昵称、手机号" />
-		</cl-row>
-
-		<cl-row>
-			<!-- 数据表格 -->
-			<cl-table ref="Table" />
-		</cl-row>
-
-		<cl-row>
-			<cl-flex1 />
-			<!-- 分页控件 -->
-			<cl-pagination />
-		</cl-row>
-
-		<!-- 新增、编辑 -->
-		<cl-upsert ref="Upsert" />
-	</cl-crud>
-</template>
-
-<script lang="ts" name="user-list" setup>
-import { useCrud, useTable, useUpsert } from '@cool-vue/crud';
-import { useCool } from '/@/cool';
-import { reactive } from 'vue';
-
-const { service } = useCool();
-
-// 数据选项
-const options = reactive({
-	loginType: [
-		{
-			label: '小程序',
-			value: 0,
-			type: 'danger'
-		},
-		{
-			label: '公众号',
-			value: 1,
-			type: 'success'
-		},
-		{
-			label: 'H5',
-			value: 2
-		}
-	],
-	gender: [
-		{
-			label: '未知',
-			value: 0,
-			type: 'info'
-		},
-		{
-			label: '男',
-			value: 1,
-			type: 'success'
-		},
-		{
-			label: '女',
-			value: 2,
-			type: 'danger'
-		}
-	],
-	status: [
-		{
-			label: '禁用',
-			value: 0,
-			type: 'danger'
-		},
-		{
-			label: '正常',
-			value: 1,
-			type: 'success'
-		},
-		{
-			label: '已注销',
-			value: 2,
-			type: 'warning'
-		}
-	]
-});
-
-// cl-table
-const Table = useTable({
-	columns: [
-		{
-			type: 'selection',
-			width: 60
-		},
-		{
-			label: '昵称',
-			prop: 'nickName',
-			minWidth: 150
-		},
-		{
-			label: '头像',
-			prop: 'avatarUrl',
-			minWidth: 100,
-			component: {
-				name: 'cl-avatar'
-			}
-		},
-		{
-			label: '手机',
-			prop: 'phone',
-			minWidth: 120
-		},
-		{
-			label: '性别',
-			prop: 'gender',
-			dict: options.gender,
-			minWidth: 100
-		},
-		{
-			label: '登录方式',
-			prop: 'loginType',
-			dict: options.loginType,
-			minWidth: 100
-		},
-		{
-			label: '状态',
-			prop: 'status',
-			minWidth: 100,
-			dict: options.status
-		},
-		{
-			label: '创建时间',
-			prop: 'createTime',
-			sortable: 'desc',
-			minWidth: 170
-		},
-		{
-			label: '操作',
-			type: 'op',
-			buttons: ['edit', 'delete']
-		}
-	]
-});
-
-// cl-upsert
-const Upsert = useUpsert({
-	dialog: {
-		width: '600px'
-	},
-	items: [
-		{
-			prop: 'avatarUrl',
-			label: '头像',
-			component: { name: 'cl-upload' }
-		},
-		{
-			prop: 'nickName',
-			label: '昵称',
-			component: { name: 'el-input' },
-			required: true
-		},
-		{
-			prop: 'phone',
-			label: '手机号',
-			component: {
-				name: 'el-input',
-				props: {
-					maxlength: 11
-				}
-			}
-		},
-		{
-			prop: 'gender',
-			label: '性别',
-			value: 1,
-			component: {
-				name: 'el-radio-group',
-				options: options.gender
-			}
-		},
-		{
-			prop: 'status',
-			label: '状态',
-			value: 1,
-			component: {
-				name: 'el-radio-group',
-				options: options.status
-			}
-		}
-	]
-});
-
-// cl-crud
-const Crud = useCrud(
-	{
-		service: service.user.info
-	},
-	app => {
-		app.refresh();
-	}
-);
-</script>

+ 4 - 2
src/plugins/upload/hooks/index.ts

@@ -62,7 +62,7 @@ export function useUpload() {
 								Authorization: isLocal ? user.token : null
 							},
 							timeout: 600000,
-							data: file,
+							data: fd as any,
 							onUploadProgress(e: AxiosProgressEvent) {
 								progress = e.total ? Math.floor((e.loaded / e.total) * 100) : 0;
 								onProgress?.(progress);
@@ -74,6 +74,7 @@ export function useUpload() {
 						if (type == 'minio') {
 							reqData.headers['Content-Type'] = file.type;
 							reqData.method = 'PUT';
+							reqData.data = file;
 						}
 
 						// 上传
@@ -160,7 +161,8 @@ export function useUpload() {
 
 									default:
 										next({
-											host: res.url
+											host: res.url,
+											preview: res.previewUrl
 										});
 										break;
 								}