diff --git a/api/economicDifficulty.js b/api/economicDifficulty.js new file mode 100644 index 0000000..574b0ad --- /dev/null +++ b/api/economicDifficulty.js @@ -0,0 +1,16 @@ +import post, {get} from "@/api/request"; + +/** + * 提交经济困难状况说明表 + * @param {Object} data - 表单数据 + * @param {Array} data.familyMembers - 家庭成员列表 + * @param {String} data.familyMembers[].name - 姓名 + * @param {String} data.familyMembers[].relation - 与申请人关系 + * @param {String} data.familyMembers[].occupation - 职业及所在单位 + * @param {String} data.familyMembers[].salaryIncome - 工资性收入 + * @param {String} data.familyMembers[].businessIncome - 生产经营性收入 + * @param {String} data.familyMembers[].otherIncome - 其他收入 + * @param {String} data.familyMembers[].totalIncome - 合计 + * @returns {Promise} + */ +export const submitEconomicDifficulty = data => post('/law/law-poor-request', data) diff --git a/api/lawOrg.js b/api/lawOrg.js index 9bca8d2..dcf1194 100644 --- a/api/lawOrg.js +++ b/api/lawOrg.js @@ -9,3 +9,5 @@ export const sendChatReq = data => post('/chat/message', data) export const stopChatReq = data => post('/chat/messageStop', data) export const lawLegalArbitrateReq = data => post('/law/law-legal-arbitrate', data) export const lawLegalAppraisalReq = data => post('/law/law-legal-appraisal', data) +export const lawLegalReviewReq = data => post('/law/law-legal-review', data) +export const lawLegalMediateReq = data => post('/law/law-legal-mediate', data) diff --git a/articlePages/pages/search.vue b/articlePages/pages/search.vue index 6451fa2..3d21b58 100644 --- a/articlePages/pages/search.vue +++ b/articlePages/pages/search.vue @@ -23,8 +23,8 @@ - {{ item.title }} - {{ item.createTime }} + {{ item.title }} + {{ item.createTime }} diff --git a/config/index.js b/config/index.js index 44180fd..ef3da0e 100644 --- a/config/index.js +++ b/config/index.js @@ -1,7 +1,7 @@ const MAIN_API_FN = () => { if (process.env.NODE_ENV === 'development') { - return 'http://127.0.0.1:10051' - // return 'https://sifa-api.wsdns.cn' + // return 'http://127.0.0.1:10051' + return 'https://sifa-api.wsdns.cn' } else { return 'https://sifa-api.wsdns.cn' } diff --git a/onlineSheetPages/pages/civil.vue b/onlineSheetPages/pages/civil.vue index 2e418f6..28f70a2 100644 --- a/onlineSheetPages/pages/civil.vue +++ b/onlineSheetPages/pages/civil.vue @@ -53,7 +53,7 @@ {{ title }} - + diff --git a/onlineSheetPages/pages/economicDifficulty.vue b/onlineSheetPages/pages/economicDifficulty.vue new file mode 100644 index 0000000..a477fbf --- /dev/null +++ b/onlineSheetPages/pages/economicDifficulty.vue @@ -0,0 +1,435 @@ + + + + + + + diff --git a/onlineSheetPages/pages/forensic.vue b/onlineSheetPages/pages/forensic.vue index a375b85..7422ab1 100644 --- a/onlineSheetPages/pages/forensic.vue +++ b/onlineSheetPages/pages/forensic.vue @@ -53,7 +53,7 @@ {{ title }} - + diff --git a/onlineSheetPages/pages/legalAid.vue b/onlineSheetPages/pages/legalAid.vue index dc84516..947ca38 100644 --- a/onlineSheetPages/pages/legalAid.vue +++ b/onlineSheetPages/pages/legalAid.vue @@ -54,7 +54,7 @@ {{ title }} - + diff --git a/onlineSheetPages/pages/legalMediate.vue b/onlineSheetPages/pages/legalMediate.vue new file mode 100644 index 0000000..53e9679 --- /dev/null +++ b/onlineSheetPages/pages/legalMediate.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/onlineSheetPages/pages/legalReview.vue b/onlineSheetPages/pages/legalReview.vue new file mode 100644 index 0000000..7542e17 --- /dev/null +++ b/onlineSheetPages/pages/legalReview.vue @@ -0,0 +1,139 @@ + + + + + \ No newline at end of file diff --git a/onlineSheetPages/pages/newNotaryRequest.vue b/onlineSheetPages/pages/newNotaryRequest.vue index c1ce0da..db1065b 100644 --- a/onlineSheetPages/pages/newNotaryRequest.vue +++ b/onlineSheetPages/pages/newNotaryRequest.vue @@ -145,6 +145,7 @@ export default { minDate: dayjs().subtract(100, 'year').valueOf(), peopleList: [], typeList: [], + originTypeList: [], clickedIndex: 0, selectedConfig: null, fileList: [], @@ -154,7 +155,11 @@ export default { methods: { async getConfigList() { const {data} = await listNotaryConfigReq() - this.typeList = data + this.typeList = data.map(item => { + item.title = `${item.type}·${item.title}` + return item + }) + this.originTypeList = JSON.parse(JSON.stringify(this.typeList)) this.selectedConfig = this.typeList[0] this.formData.type = this.selectedConfig.title this.fileList = [] diff --git a/onlineSheetPages/pages/newRequest.vue b/onlineSheetPages/pages/newRequest.vue index 1075099..aafbac1 100644 --- a/onlineSheetPages/pages/newRequest.vue +++ b/onlineSheetPages/pages/newRequest.vue @@ -1,6 +1,10 @@ @@ -57,17 +59,20 @@ import {sendChatReq, stopChatReq} from "@/api/lawOrg"; import {getUserInfo} from "@/util/user"; import {MAIN} from "@/config/color"; import {dictDataReq} from "@/api/common"; +import Login from "@/components/Login.vue"; export default { name: "index", - components: {HeaderItem, CustomTabbar}, + components: {Login, HeaderItem, CustomTabbar}, data() { return { list: [], questionList: [], content: '', taskId: null, - answering: false + answering: false, + socket: null, + timer: null, } }, methods: { @@ -118,39 +123,76 @@ export default { }, 100) }, async stopAI() { + console.log('stoping') await stopChatReq({ taskId: this.taskId }) this.answering = false - uni.closeSocket() + this.list[this.list.length - 1].done = true + }, + onLoginDone(){ + uni.hideLoading() + this.list.push({ + content: '您好!我是法律机器人,请问您想咨询什么问题呢?', + isMine: false, + loading: false, + done: true, + }) + const _this = this + this.socket = uni.connectSocket({ + url: `${WS_API}/${getUserInfo().uid}`, + success: () => { + _this.ping() + }, + }) + uni.onSocketMessage(res => { + if (res.data === '连接成功') return + const aiData = JSON.parse(res.data) + this.list[this.list.length - 1].loading = false + if (aiData.answer !== '__END__') this.list[this.list.length - 1].content += aiData.answer + this.taskId = aiData.taskId + this.scrollToBottom() + }) + }, + ping() { + this.timer = setInterval(() => { + if (this.socket) { + this.socket.send({ + data: 'ping' + }) + } + }, 10000) } }, onLoad() { - this.list.push({ - content: '您好!我是法律机器人,请问您想咨询什么问题呢?', - isMine: false, - loading: false, - done: true, - }) - uni.connectSocket({ - url: `${WS_API}/${getUserInfo().uid}` - }) - uni.onSocketMessage(res => { - if (res.data === '连接成功') return - const aiData = JSON.parse(res.data) - this.list[this.list.length - 1].loading = false - if (aiData.answer !== '__END__') this.list[this.list.length - 1].content += aiData.answer - this.taskId = aiData.taskId - this.scrollToBottom() + uni.showLoading({ + title: '加载中...', }) + this.$refs.Login.doLogin() this.getQuestionsList() }, onUnload() { + if (this.timer) clearInterval(this.timer) + uni.closeSocket() this.stopAI() }, onHide() { + if (this.timer) clearInterval(this.timer) + uni.closeSocket() this.stopAI() }, + onShareAppMessage() { + return { + title: "贵港公共法律服务", + path: `/pages/ai/index` + } + }, + onShareTimeline() { + return { + title: "贵港公共法律服务", + path: `/pages/ai/index` + } + }, } diff --git a/static/index/5.png b/static/index/5.png new file mode 100644 index 0000000..332fda9 Binary files /dev/null and b/static/index/5.png differ diff --git a/static/index/6.png b/static/index/6.png new file mode 100644 index 0000000..66f1d8b Binary files /dev/null and b/static/index/6.png differ diff --git a/static/index/req.png b/static/index/req.png new file mode 100644 index 0000000..490b6e9 Binary files /dev/null and b/static/index/req.png differ diff --git a/static/index/微信图片_20251009215218_10897_9.png b/static/index/微信图片_20251009215218_10897_9.png new file mode 100644 index 0000000..d06c886 Binary files /dev/null and b/static/index/微信图片_20251009215218_10897_9.png differ