Compare commits

...

9 Commits

  1. 7
      src/api/login/index.ts
  2. 6
      src/views/Basic/Dept/index.vue
  3. 4
      src/views/Basic/Role/Comp/ReportDaily.vue
  4. 3
      src/views/Basic/User/UserForm.vue
  5. 15
      src/views/Clue/Order/Comp/Reback.vue
  6. 29
      src/views/Login/MPLogin.vue
  7. 13
      src/views/Profile/NotifyMessage.vue
  8. 14
      src/views/Profile/NotifyMessageDetail.vue

@ -71,3 +71,10 @@ export const getAppInfo = (instanceId: number) => {
url: '/admin-api/system/serviceInstance/getInstanceInfo?instanceId=' + instanceId url: '/admin-api/system/serviceInstance/getInstanceInfo?instanceId=' + instanceId
}) })
} }
export const bindWx = (data: any) => {
return request.post({
url: '/admin-api/system/user/bind/wx',
data
})
}

@ -23,7 +23,11 @@
<el-table-column prop="name" label="部门名称" /> <el-table-column prop="name" label="部门名称" />
<el-table-column prop="leader" label="负责人" width="120" /> <el-table-column prop="leader" label="负责人" width="120" />
<el-table-column prop="sort" label="排序" width="200" /> <el-table-column prop="sort" label="排序" width="200" />
<el-table-column prop="status" label="状态" width="100" /> <el-table-column prop="status" label="状态" width="100">
<template #default="{ row }">
{{ ['启用', '禁用'][row.status] }}
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime" width="180" :formatter="dateFormatter" /> <el-table-column label="创建时间" prop="createTime" width="180" :formatter="dateFormatter" />
<el-table-column label="操作" class-name="fixed-width" width="240"> <el-table-column label="操作" class-name="fixed-width" width="240">
<template #default="scope"> <template #default="scope">

@ -3,8 +3,8 @@
<el-form :model="form" ref="formRef" :rules="rules" label-width="auto" v-loading="formLoading"> <el-form :model="form" ref="formRef" :rules="rules" label-width="auto" v-loading="formLoading">
<el-form-item label="开启通知"> <el-form-item label="开启通知">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.status">
<el-radio :label="1"> 开启 </el-radio> <el-radio :label="0"> 开启 </el-radio>
<el-radio :label="0"> 关闭 </el-radio> <el-radio :label="1"> 关闭 </el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>

@ -194,7 +194,6 @@ const submitForm = async () => {
const data = formData.value as unknown as UserApi.UserVO const data = formData.value as unknown as UserApi.UserVO
if (formType.value === 'create') { if (formType.value === 'create') {
const resp = await UserApi.createUser(data) const resp = await UserApi.createUser(data)
debugger
if (resp.code == 18888) { if (resp.code == 18888) {
await message.confirm(resp.msg) await message.confirm(resp.msg)
formData.value.isNewUserConfirm = true formData.value.isNewUserConfirm = true
@ -229,7 +228,7 @@ const resetForm = () => {
status: CommonStatusEnum.ENABLE, status: CommonStatusEnum.ENABLE,
roleIds: [], roleIds: [],
hireDate: formatDate(new Date(), 'YYYY-MM-DD'), hireDate: formatDate(new Date(), 'YYYY-MM-DD'),
isNewUserConfirm: undefined isNewUserConfirm: false
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

@ -7,6 +7,9 @@
<el-form-item> <el-form-item>
<el-input v-model="searchForm.name" placeholder="线索名称" clearable /> <el-input v-model="searchForm.name" placeholder="线索名称" clearable />
</el-form-item> </el-form-item>
<el-form-item>
<el-input v-model="searchForm.mobile" placeholder="联系方式" clearable />
</el-form-item>
<el-form-item> <el-form-item>
<el-select v-model="searchForm.state" placeholder="审核状态" clearable style="width: 120px"> <el-select v-model="searchForm.state" placeholder="审核状态" clearable style="width: 120px">
<el-option label="待审核" :value="1" /> <el-option label="待审核" :value="1" />
@ -133,8 +136,8 @@
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="60" :selectable="(row) => row.state == 1" /> <el-table-column type="selection" width="60" :selectable="(row) => row.state == 1" />
<el-table-column prop="signId" label="成交单号" min-width="180px" /> <el-table-column prop="signId" label="成交单号" min-width="150px" />
<el-table-column prop="name" label="线索名称" width="150px" /> <el-table-column prop="name" label="线索名称" width="120px" />
<el-table-column prop="phone" label="联系方式" width="120px" />companyProfit <el-table-column prop="phone" label="联系方式" width="120px" />companyProfit
<el-table-column prop="money" label="回款金额" min-width="120px"> <el-table-column prop="money" label="回款金额" min-width="120px">
<template #default="{ row }"> <template #default="{ row }">
@ -207,6 +210,12 @@
label="转化人" label="转化人"
min-width="90" min-width="90"
/> />
<el-table-column
v-if="appStore.getAppInfo?.instanceType == 1"
prop="area"
label="区域"
min-width="90"
/>
<el-table-column prop="signUserName" label="登记人" min-width="90" /> <el-table-column prop="signUserName" label="登记人" min-width="90" />
<el-table-column <el-table-column
prop="dealDate" prop="dealDate"
@ -331,6 +340,7 @@ const searchForm = ref({
applyTime: [], applyTime: [],
applyUser: undefined, applyUser: undefined,
checkTime: [], checkTime: [],
phone: undefined,
pageNo: 1, pageNo: 1,
pageSize: 20 pageSize: 20
}) })
@ -358,6 +368,7 @@ function handleReset() {
applyTime: [], applyTime: [],
applyUser: undefined, applyUser: undefined,
checkTime: [], checkTime: [],
mobile: undefined,
pageNo: 1, pageNo: 1,
pageSize: 20 pageSize: 20
} }

@ -9,12 +9,17 @@
<el-input v-model="form.password" placeholder="请输入密码" show-password type="password" /> <el-input v-model="form.password" placeholder="请输入密码" show-password type="password" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-button type="primary" class="w-full" @click="onSubmit">授权登陆</el-button> <el-button type="primary" :disabled="formLoading" class="w-full" @click="onSubmit">
<div v-if="form.code">code: {{ form.code }}</div> 授权登陆
</el-button>
</div> </div>
</template> </template>
<script setup name="MPLogin"> <script setup name="MPLogin">
import { bindWx } from '@/api/login'
const message = useMessage() //
const form = ref({ const form = ref({
code: undefined, code: undefined,
username: undefined, username: undefined,
@ -38,13 +43,29 @@ const params = ref({
scope: 'snsapi_base' // snsapi_base open id snsapi_userinfo scope: 'snsapi_base' // snsapi_base open id snsapi_userinfo
// state:'code', // a-zA-Z0-9128 // state:'code', // a-zA-Z0-9128
}) })
function onSubmit() {
const formLoading = ref(false)
async function onSubmit() {
// code // code
if (!form.value.code) { if (!form.value.code) {
const access_url = WX_AUTH_URL + `${new URLSearchParams(params.value)}` + REDIRECT const access_url = WX_AUTH_URL + `${new URLSearchParams(params.value)}` + REDIRECT
location.href = access_url location.href = access_url
} else { } else {
alert(`授权成功!`) //
if (!formRef.value) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
await bindWx(form.value)
message.success('绑定成功')
window.close()
} catch (error) {
console.log(error)
} finally {
formLoading.value = false
}
} }
} }

@ -122,7 +122,10 @@ const handleQuery = () => {
getList() getList()
} }
function handleDetail(row: any) { async function handleDetail(row: any) {
if (!row.readStatus) {
await handleReadOne(row.id)
}
const url = router.resolve({ const url = router.resolve({
path: '/nm-detail', path: '/nm-detail',
query: { id: row.id } query: { id: row.id }
@ -133,6 +136,14 @@ function handleDetail(row: any) {
const tableRef = ref() // Ref const tableRef = ref() // Ref
const selectedIds = ref<number[]>([]) // ID const selectedIds = ref<number[]>([]) // ID
/** 标记一条站内信已读 */
const handleReadOne = async (id: number) => {
await NotifyMessageApi.updateNotifyMessageRead({
ids: [id]
})
await getList()
}
/** 标记全部站内信已读 **/ /** 标记全部站内信已读 **/
const handleUpdateAll = async () => { const handleUpdateAll = async () => {
await NotifyMessageApi.updateAllNotifyMessageRead({ await NotifyMessageApi.updateAllNotifyMessageRead({

@ -1,5 +1,12 @@
<!--
* @Author: riverQiu
* @Date: 2024-09-11 18:42:37
* @LastEditors: riverQiu
* @LastEditTime: 2024-09-11 19:03:23
* @Description:
-->
<template> <template>
<div class="p-20px"> <div class="container">
<ContentWrap style="max-width: 1000px; margin: 0 auto"> <ContentWrap style="max-width: 1000px; margin: 0 auto">
<div class="text-center"> <div class="text-center">
<div class="mb-10px" style="font-size: 24px; letter-spacing: 2px"> <div class="mb-10px" style="font-size: 24px; letter-spacing: 2px">
@ -47,6 +54,11 @@ onMounted(() => {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.container {
padding: 20px;
max-height: 100%;
overflow-y: auto;
}
:deep(p) { :deep(p) {
font-size: 14px; font-size: 14px;
} }

Loading…
Cancel
Save