会员、门店修改,代码优化
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
import request from '@/config/axios'
|
import request from '@/config/axios'
|
||||||
|
|
||||||
export interface JobVO {
|
export interface JobVO {
|
||||||
id: number
|
id?: number
|
||||||
name: string
|
name: string
|
||||||
status: number
|
status: number
|
||||||
handlerName: string
|
handlerName: string
|
||||||
|
|||||||
@ -1,13 +1,28 @@
|
|||||||
import request from '@/config/axios'
|
import request from '@/config/axios'
|
||||||
|
|
||||||
export interface DiscountCouponVO {
|
export interface DiscountCouponVO {
|
||||||
id: number
|
couponName: string
|
||||||
name: string
|
couponScope: number
|
||||||
type: boolean
|
couponType: number
|
||||||
regionInfo: string
|
couponValue: string | null
|
||||||
appoint: boolean
|
createTime: number
|
||||||
appointInfo: string
|
creator: string
|
||||||
sort: number
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询优惠券列表
|
// 查询优惠券列表
|
||||||
|
|||||||
@ -93,7 +93,7 @@ const queryParams = reactive({
|
|||||||
})
|
})
|
||||||
const total = ref(0)
|
const total = ref(0)
|
||||||
const list = ref([]);
|
const list = ref([]);
|
||||||
const multipleSelection = ref([])
|
const multipleSelection = ref<CouponApi.DiscountCouponVO[]>([])
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
selectedItems: {
|
selectedItems: {
|
||||||
type: Array,
|
type: Array,
|
||||||
|
|||||||
@ -49,7 +49,17 @@ import * as JobApi from '@/api/infra/job'
|
|||||||
|
|
||||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||||
const detailLoading = 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([]) // 下一轮执行时间的数组
|
const nextTimes = ref([]) // 下一轮执行时间的数组
|
||||||
|
|
||||||
/** 打开弹窗 */
|
/** 打开弹窗 */
|
||||||
@ -69,3 +79,4 @@ const open = async (id: number) => {
|
|||||||
}
|
}
|
||||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -38,7 +38,19 @@ import * as JobLogApi from '@/api/infra/jobLog'
|
|||||||
|
|
||||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||||
const detailLoading = 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) => {
|
const open = async (id: number) => {
|
||||||
@ -55,3 +67,4 @@ const open = async (id: number) => {
|
|||||||
}
|
}
|
||||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -66,11 +66,13 @@ const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
|||||||
const linkData = ref({})
|
const linkData = ref({})
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
name: '',
|
name: '',
|
||||||
onlineTime: '',
|
onlineTime: [],
|
||||||
popupImage: '',
|
popupImage: '',
|
||||||
buttonImage: '',
|
buttonImage: '',
|
||||||
type: 0,
|
type: 0,
|
||||||
link: '',
|
link: '',
|
||||||
|
startTime: '',
|
||||||
|
endTime: ''
|
||||||
})
|
})
|
||||||
const formRules = reactive({
|
const formRules = reactive({
|
||||||
name: [
|
name: [
|
||||||
@ -105,7 +107,7 @@ const open = async (type: string, id?: number) => {
|
|||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
formData.onlineTime = []
|
formData.value.onlineTime = []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
||||||
@ -145,11 +147,13 @@ const submitForm = async () => {
|
|||||||
const resetForm = () => {
|
const resetForm = () => {
|
||||||
formData.value = {
|
formData.value = {
|
||||||
name: '',
|
name: '',
|
||||||
onlineTime: '',
|
onlineTime: [],
|
||||||
popupImage: '',
|
popupImage: '',
|
||||||
buttonImage: '',
|
buttonImage: '',
|
||||||
type: 0,
|
type: 0,
|
||||||
link: '',
|
link: '',
|
||||||
|
startTime: '',
|
||||||
|
endTime: ''
|
||||||
}
|
}
|
||||||
formRef.value?.resetFields()
|
formRef.value?.resetFields()
|
||||||
}
|
}
|
||||||
@ -159,3 +163,4 @@ function typeChange () {
|
|||||||
linkData.value = {}
|
linkData.value = {}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -163,6 +163,8 @@
|
|||||||
|
|
||||||
<script setup lang="ts" name="User">
|
<script setup lang="ts" name="User">
|
||||||
import { dateFormatter } from '@/utils/formatTime'
|
import { dateFormatter } from '@/utils/formatTime'
|
||||||
|
import { ref, reactive } from 'vue'
|
||||||
|
|
||||||
import download from '@/utils/download'
|
import download from '@/utils/download'
|
||||||
import * as UserApi from '@/api/member/user'
|
import * as UserApi from '@/api/member/user'
|
||||||
import UserForm from './UserForm.vue'
|
import UserForm from './UserForm.vue'
|
||||||
|
|||||||
@ -55,16 +55,42 @@ const { t } = useI18n() // 国际化
|
|||||||
// const message = useMessage() // 消息弹窗
|
// const message = useMessage() // 消息弹窗
|
||||||
const dialogTitle = ref('') // 弹窗的标题
|
const dialogTitle = ref('') // 弹窗的标题
|
||||||
const drawer = ref(false)
|
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 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
|
drawer.value = true
|
||||||
dialogTitle.value = t('action.' + type)
|
dialogTitle.value = t('action.' + type)
|
||||||
DetailData.value = await StoreOrderApi.getStoreOrder(id)
|
DetailData.value = await StoreOrderApi.getStoreOrder(id)
|
||||||
nickname.value = DetailData.value.userRespVO.nickname
|
nickname.value = DetailData.value.userRespVO.nickname
|
||||||
console.log('aa:'+DetailData.value.userRespVO.nickname )
|
|
||||||
}
|
}
|
||||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
||||||
|
|
||||||
|
|||||||
@ -69,12 +69,12 @@
|
|||||||
<el-tag
|
<el-tag
|
||||||
v-if="scope.row.status"
|
v-if="scope.row.status"
|
||||||
type="success"
|
type="success"
|
||||||
size="mini"
|
size="small"
|
||||||
>开启</el-tag>
|
>开启</el-tag>
|
||||||
<el-tag
|
<el-tag
|
||||||
v-else
|
v-else
|
||||||
type="danger"
|
type="danger"
|
||||||
size="mini"
|
size="small"
|
||||||
>关闭</el-tag>
|
>关闭</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -118,23 +118,35 @@
|
|||||||
|
|
||||||
<script setup lang="ts" name="ShopAssistant">
|
<script setup lang="ts" name="ShopAssistant">
|
||||||
import { dateFormatter } from '@/utils/formatTime'
|
import { dateFormatter } from '@/utils/formatTime'
|
||||||
// import download from '@/utils/download'
|
import { ref, reactive } from 'vue'
|
||||||
import * as ShopAssistantApi from '@/api/mall/shopAssistant'
|
import * as ShopAssistantApi from '@/api/mall/shopAssistant'
|
||||||
import ShopAssistantForm from './ShopAssistantForm.vue'
|
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 message = useMessage() // 消息弹窗
|
||||||
const { t } = useI18n() // 国际化
|
const { t } = useI18n() // 国际化
|
||||||
|
|
||||||
const loading = ref(true) // 列表的加载中
|
const loading = ref(true) // 列表的加载中
|
||||||
const total = ref(0) // 列表的总页数
|
const total = ref(0) // 列表的总页数
|
||||||
const list = ref([]) // 列表的数据
|
const list = ref([]) // 列表的数据
|
||||||
const queryParams = reactive({
|
const queryParams:QueryParams = reactive({
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
storeId: null,
|
storeId: undefined,
|
||||||
userId: null,
|
userId: undefined,
|
||||||
name: null,
|
name: undefined,
|
||||||
phoneNo: null,
|
phoneNo: undefined,
|
||||||
status: null,
|
status: undefined,
|
||||||
createTime: []
|
createTime: []
|
||||||
})
|
})
|
||||||
const queryFormRef = ref() // 搜索的表单
|
const queryFormRef = ref() // 搜索的表单
|
||||||
|
|||||||
@ -69,16 +69,6 @@
|
|||||||
<Icon class="mr-5px" icon="ep:plus" />
|
<Icon class="mr-5px" icon="ep:plus" />
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</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-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
@ -164,7 +154,6 @@
|
|||||||
<script lang="ts" name="SystemRole" setup>
|
<script lang="ts" name="SystemRole" setup>
|
||||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
||||||
import { dateFormatter } from '@/utils/formatTime'
|
import { dateFormatter } from '@/utils/formatTime'
|
||||||
import download from '@/utils/download'
|
|
||||||
import * as RoleApi from '@/api/system/role'
|
import * as RoleApi from '@/api/system/role'
|
||||||
import RoleForm from './RoleForm.vue'
|
import RoleForm from './RoleForm.vue'
|
||||||
import RoleAssignMenuForm from './RoleAssignMenuForm.vue'
|
import RoleAssignMenuForm from './RoleAssignMenuForm.vue'
|
||||||
@ -185,7 +174,6 @@ const queryParams = reactive({
|
|||||||
createTime: []
|
createTime: []
|
||||||
})
|
})
|
||||||
const queryFormRef = ref() // 搜索的表单
|
const queryFormRef = ref() // 搜索的表单
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
|
||||||
|
|
||||||
/** 查询角色列表 */
|
/** 查询角色列表 */
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
@ -242,21 +230,6 @@ const handleDelete = async (id: number) => {
|
|||||||
} catch {}
|
} 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(() => {
|
onMounted(() => {
|
||||||
getList()
|
getList()
|
||||||
|
|||||||
@ -192,6 +192,11 @@ import download from '@/utils/download'
|
|||||||
import * as SmsChannelApi from '@/api/system/sms/smsChannel'
|
import * as SmsChannelApi from '@/api/system/sms/smsChannel'
|
||||||
import * as SmsLogApi from '@/api/system/sms/smsLog'
|
import * as SmsLogApi from '@/api/system/sms/smsLog'
|
||||||
import SmsLogDetail from './SmsLogDetail.vue'
|
import SmsLogDetail from './SmsLogDetail.vue'
|
||||||
|
interface channelItem {
|
||||||
|
id: string;
|
||||||
|
signature: string;
|
||||||
|
code: string;
|
||||||
|
}
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
|
|
||||||
const loading = ref(false) // 列表的加载中
|
const loading = ref(false) // 列表的加载中
|
||||||
@ -201,7 +206,7 @@ const queryFormRef = ref() // 搜索的表单
|
|||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
channelId: null,
|
channelId: '',
|
||||||
templateId: null,
|
templateId: null,
|
||||||
mobile: '',
|
mobile: '',
|
||||||
sendStatus: null,
|
sendStatus: null,
|
||||||
@ -210,7 +215,7 @@ const queryParams = reactive({
|
|||||||
receiveTime: []
|
receiveTime: []
|
||||||
})
|
})
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
const channelList = ref([]) // 短信渠道列表
|
const channelList = ref<channelItem[]>([]) // 短信渠道列表
|
||||||
|
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
@ -264,3 +269,4 @@ onMounted(async () => {
|
|||||||
channelList.value = await SmsChannelApi.getSimpleSmsChannelList()
|
channelList.value = await SmsChannelApi.getSimpleSmsChannelList()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -145,7 +145,7 @@ const formRules = reactive({
|
|||||||
})
|
})
|
||||||
const formRef = ref() // 表单 Ref
|
const formRef = ref() // 表单 Ref
|
||||||
const deptList = ref<Tree[]>([]) // 树形结构
|
const deptList = ref<Tree[]>([]) // 树形结构
|
||||||
const postList = ref([]) // 岗位列表
|
const postList = ref<PostApi.PostVO[]>([]) // 岗位列表
|
||||||
|
|
||||||
/** 打开弹窗 */
|
/** 打开弹窗 */
|
||||||
const open = async (type: string, id?: number) => {
|
const open = async (type: string, id?: number) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user