7 Commits

Author SHA1 Message Date
qsh
f6ed6575c4 sc 2024-09-14 16:37:31 +08:00
qsh
cab0b3f2eb sc 2024-09-13 17:41:08 +08:00
qsh
f415e0cfce Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cjl 2024-09-13 10:38:00 +08:00
qsh
90f7513ca8 sc 2024-09-13 10:18:32 +08:00
qsh
cad9fbb0e0 sc 2024-09-12 16:29:50 +08:00
qsh
187c156e88 sc 2024-09-12 09:45:33 +08:00
842e6ea24b sc 2024-09-12 01:59:30 +08:00
8 changed files with 78 additions and 13 deletions

View File

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

View File

@@ -23,7 +23,11 @@
<el-table-column prop="name" label="部门名称" />
<el-table-column prop="leader" label="负责人" width="120" />
<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="操作" class-name="fixed-width" width="240">
<template #default="scope">

View File

@@ -3,8 +3,8 @@
<el-form :model="form" ref="formRef" :rules="rules" label-width="auto" v-loading="formLoading">
<el-form-item label="开启通知">
<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-form-item>

View File

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

View File

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

View File

@@ -9,12 +9,17 @@
<el-input v-model="form.password" placeholder="请输入密码" show-password type="password" />
</el-form-item>
</el-form>
<el-button type="primary" class="w-full" @click="onSubmit">授权登陆</el-button>
<div v-if="form.code">code: {{ form.code }}</div>
<el-button type="primary" :disabled="formLoading" class="w-full" @click="onSubmit">
授权登陆
</el-button>
</div>
</template>
<script setup name="MPLogin">
import { bindWx } from '@/api/login'
const message = useMessage() // 消息弹窗
const form = ref({
code: undefined,
username: undefined,
@@ -38,13 +43,29 @@ const params = ref({
scope: 'snsapi_base' // snsapi_base 静默授权获取 open id snsapi_userinfo 需要用户授权,获取详细信息
// state:'code', // a-zA-Z0-9的参数值最多128字节
})
function onSubmit() {
const formLoading = ref(false)
async function onSubmit() {
// 这些需要判断没有 code 情况拉起授权登陆,有就结束放在重复拉起授权登陆
if (!form.value.code) {
const access_url = WX_AUTH_URL + `${new URLSearchParams(params.value)}` + REDIRECT
location.href = access_url
} 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
}
}
}

View File

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

View File

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