会员、门店修改,代码优化

This commit is contained in:
Shaw
2024-03-01 19:13:01 +08:00
parent 8d4a4ac151
commit 002339d882
12 changed files with 120 additions and 57 deletions

View File

@ -1,7 +1,7 @@
import request from '@/config/axios'
export interface JobVO {
id: number
id?: number
name: string
status: number
handlerName: string

View File

@ -1,13 +1,28 @@
import request from '@/config/axios'
export interface DiscountCouponVO {
id: number
name: string
type: boolean
regionInfo: string
appoint: boolean
appointInfo: string
sort: number
couponName: string
couponScope: number
couponType: number
couponValue: string | null
createTime: number
creator: string
deleted: false
discount: number
expirationDay: number
expirationTime: number | null
expirationType: number
id?: number
limitNumber: number
number: number
receiveType: number
remark:string
scopeValues: string | null
status: number | null
takingEffectTime: number | null
threshold: number
updateTime: number
updater: string
}
// 查询优惠券列表

View File

@ -93,7 +93,7 @@ const queryParams = reactive({
})
const total = ref(0)
const list = ref([]);
const multipleSelection = ref([])
const multipleSelection = ref<CouponApi.DiscountCouponVO[]>([])
const props = defineProps({
selectedItems: {
type: Array,

View File

@ -49,7 +49,17 @@ import * as JobApi from '@/api/infra/job'
const dialogVisible = ref(false) // 弹窗的是否展示
const detailLoading = ref(false) // 表单的加载中
const detailData = ref({}) // 详情数据
const detailData = ref<JobApi.JobVO>({
name: '',
status: 0,
handlerName: '',
handlerParam: '',
cronExpression: '',
retryCount: 0,
retryInterval: 0,
monitorTimeout: 0,
createTime: new Date(),
}) // 详情数据
const nextTimes = ref([]) // 下一轮执行时间的数组
/** 打开弹窗 */
@ -69,3 +79,4 @@ const open = async (id: number) => {
}
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
</script>

View File

@ -38,7 +38,19 @@ import * as JobLogApi from '@/api/infra/jobLog'
const dialogVisible = ref(false) // 弹窗的是否展示
const detailLoading = ref(false) // 表单的加载中
const detailData = ref({}) // 详情数据
const detailData = ref({
id: '',
jobId: '',
handlerName: '',
handlerParam: '',
executeIndex: '',
beginTime: new Date(),
endTime: new Date(),
duration: '',
status: '',
}) // 详情数据
/** 打开弹窗 */
const open = async (id: number) => {
@ -55,3 +67,4 @@ const open = async (id: number) => {
}
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
</script>

View File

@ -66,11 +66,13 @@ const formType = ref('') // 表单的类型create - 新增update - 修改
const linkData = ref({})
const formData = ref({
name: '',
onlineTime: '',
onlineTime: [],
popupImage: '',
buttonImage: '',
type: 0,
link: '',
startTime: '',
endTime: ''
})
const formRules = reactive({
name: [
@ -105,7 +107,7 @@ const open = async (type: string, id?: number) => {
formLoading.value = false
}
} else {
formData.onlineTime = []
formData.value.onlineTime = []
}
}
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
@ -145,11 +147,13 @@ const submitForm = async () => {
const resetForm = () => {
formData.value = {
name: '',
onlineTime: '',
onlineTime: [],
popupImage: '',
buttonImage: '',
type: 0,
link: '',
startTime: '',
endTime: ''
}
formRef.value?.resetFields()
}
@ -159,3 +163,4 @@ function typeChange () {
linkData.value = {}
}
</script>

View File

@ -163,6 +163,8 @@
<script setup lang="ts" name="User">
import { dateFormatter } from '@/utils/formatTime'
import { ref, reactive } from 'vue'
import download from '@/utils/download'
import * as UserApi from '@/api/member/user'
import UserForm from './UserForm.vue'

View File

@ -55,16 +55,42 @@ const { t } = useI18n() // 国际化
// const message = useMessage() // 消息弹窗
const dialogTitle = ref('') // 弹窗的标题
const drawer = ref(false)
const DetailData = ref({})
const DetailData = ref({
nickname: '',
realName: '',
userPhone: '',
userAddress: '',
orderId: '',
statusStr: '',
totalNum: '',
cost: '',
payPostage: '',
couponPrice: '',
useIntegral: '',
payPrice: '',
gainIntegral: '',
createTime: new Date(),
payTime: new Date(),
payType: '',
deliveryId: '',
deliveryName: '',
deliverySn: '',
userRespVO: {
nickname: ''
}
})
const nickname = ref('')
const logisticResult = ref({})
interface LogisticResult {
acceptTime: string;
acceptStation: string;
}
const logisticResult = ref<LogisticResult[]>([])
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
const open = async (type: string, id: number) => {
drawer.value = true
dialogTitle.value = t('action.' + type)
DetailData.value = await StoreOrderApi.getStoreOrder(id)
nickname.value = DetailData.value.userRespVO.nickname
console.log('aa:'+DetailData.value.userRespVO.nickname )
}
defineExpose({ open }) // 提供 open 方法,用于打开弹窗

View File

@ -69,12 +69,12 @@
<el-tag
v-if="scope.row.status"
type="success"
size="mini"
size="small"
>开启</el-tag>
<el-tag
v-else
type="danger"
size="mini"
size="small"
>关闭</el-tag>
</template>
</el-table-column>
@ -118,23 +118,35 @@
<script setup lang="ts" name="ShopAssistant">
import { dateFormatter } from '@/utils/formatTime'
// import download from '@/utils/download'
import { ref, reactive } from 'vue'
import * as ShopAssistantApi from '@/api/mall/shopAssistant'
import ShopAssistantForm from './ShopAssistantForm.vue'
interface QueryParams {
pageNo: number;
pageSize: number;
storeId: string | undefined;
userId: string | undefined;
name: string | undefined;
phoneNo: string | undefined;
status: string | undefined;
createTime: any;
}
const message = useMessage() // 消息弹窗
const { t } = useI18n() // 国际化
const loading = ref(true) // 列表的加载中
const total = ref(0) // 列表的总页数
const list = ref([]) // 列表的数据
const queryParams = reactive({
const queryParams:QueryParams = reactive({
pageNo: 1,
pageSize: 10,
storeId: null,
userId: null,
name: null,
phoneNo: null,
status: null,
storeId: undefined,
userId: undefined,
name: undefined,
phoneNo: undefined,
status: undefined,
createTime: []
})
const queryFormRef = ref() // 搜索的表单

View File

@ -69,16 +69,6 @@
<Icon class="mr-5px" icon="ep:plus" />
新增
</el-button>
<el-button
v-hasPermi="['system:role:export']"
:loading="exportLoading"
plain
type="success"
@click="handleExport"
>
<Icon class="mr-5px" icon="ep:download" />
导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
@ -164,7 +154,6 @@
<script lang="ts" name="SystemRole" setup>
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import * as RoleApi from '@/api/system/role'
import RoleForm from './RoleForm.vue'
import RoleAssignMenuForm from './RoleAssignMenuForm.vue'
@ -185,7 +174,6 @@ const queryParams = reactive({
createTime: []
})
const queryFormRef = ref() // 搜索的表单
const exportLoading = ref(false) // 导出的加载中
/** 查询角色列表 */
const getList = async () => {
@ -242,21 +230,6 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
// 导出的二次确认
await message.exportConfirm()
// 发起导出
exportLoading.value = true
const data = await RoleApi.exportRole(queryParams)
download.excel(data, '角色列表.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 初始化 **/
onMounted(() => {
getList()

View File

@ -192,6 +192,11 @@ import download from '@/utils/download'
import * as SmsChannelApi from '@/api/system/sms/smsChannel'
import * as SmsLogApi from '@/api/system/sms/smsLog'
import SmsLogDetail from './SmsLogDetail.vue'
interface channelItem {
id: string;
signature: string;
code: string;
}
const message = useMessage() // 消息弹窗
const loading = ref(false) // 列表的加载中
@ -201,7 +206,7 @@ const queryFormRef = ref() // 搜索的表单
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
channelId: null,
channelId: '',
templateId: null,
mobile: '',
sendStatus: null,
@ -210,7 +215,7 @@ const queryParams = reactive({
receiveTime: []
})
const exportLoading = ref(false) // 导出的加载中
const channelList = ref([]) // 短信渠道列表
const channelList = ref<channelItem[]>([]) // 短信渠道列表
/** 查询列表 */
const getList = async () => {
@ -264,3 +269,4 @@ onMounted(async () => {
channelList.value = await SmsChannelApi.getSimpleSmsChannelList()
})
</script>

View File

@ -145,7 +145,7 @@ const formRules = reactive({
})
const formRef = ref() // 表单 Ref
const deptList = ref<Tree[]>([]) // 树形结构
const postList = ref([]) // 岗位列表
const postList = ref<PostApi.PostVO[]>([]) // 岗位列表
/** 打开弹窗 */
const open = async (type: string, id?: number) => {