From ed96dab91fbac7159525fe557af2ecdd135c791d Mon Sep 17 00:00:00 2001
From: liuwh <liuwh@hugeinfo.com.cn>
Date: Mon, 23 Mar 2020 14:21:40 +0800
Subject: [PATCH] 1

---
 SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.js      |   64 +
 SunshineIns/src/fetch/getSweeping.js                                |    9 
 SunshineLnsMinApp/pages/pfyy/pfyy.js                                |  120 ++
 SunshineIns/src/page/ActiveManageEditquestionnaire.jsx              |    6 
 SunshineLnsMinApp/pages/rzcx/rzcx.wxss                              |  227 +++
 SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.json   |    3 
 SunshineLnsMinApp/pages/zdyf/zdyf.wxss                              |   30 
 SunshineLnsMinApp/pages/rzcxList/rzcxList.wxml                      |   18 
 SunshineLnsMinApp/pages/yshjqyfw/yshjqyfw.wxml                      |  103 -
 SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.wxml |   26 
 SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.js              |  187 +++
 SunshineLnsMinApp/pages/zdyf/zdyf.json                              |    6 
 SunshineIns/src/fetch/searchLawSave.js                              |    8 
 SunshineIns/src/page/QuestionDetail.jsx                             |    5 
 SunshineIns/src/fetch/searchLaw.js                                  |    9 
 SunshineLnsMinApp/pages/messageNotification/messageNotification.js  |   26 
 SunshineLnsMinApp/pages/pfyy/pfyy.wxml                              |   68 +
 SunshineLnsMinApp/pages/rzcx/rzcx.json                              |    3 
 SunshineLnsMinApp/pages/law2Publicity/law2Publicity.js              |   37 
 SunshineLnsMinApp/pages/zhghInfo/zhghInfo.wxml                      |    2 
 SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.wxml          |    1 
 SunshineLnsMinApp/pages/createSubList/createSubList.json            |    7 
 SunshineLnsMinApp/pages/createSub/createSub.js                      |   21 
 SunshineLnsMinApp/pages/xsuojbInfo/xsuojbInfo.json                  |    7 
 SunshineLnsMinApp/pages/yshjqyfw/yshjqyfw.js                        |   39 
 SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.json |    7 
 SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.js            |    1 
 SunshineLnsMinApp/pages/createSubList/createSubList.wxml            |   49 
 SunshineIns/src/fetch/searchLawDelete.js                            |    9 
 SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.wxml   |    3 
 SunshineIns/src/view/QuestionnairContent/index.js                   |   57 
 SunshineLnsMinApp/app.js                                            |   57 
 SunshineLnsMinApp/pages/me/me.wxml                                  |   12 
 SunshineLnsMinApp/pages/zhghInfo/zhghInfo.js                        |    7 
 SunshineLnsMinApp/pages/law2Publicity/law2Publicity.wxss            |  169 ++
 SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.js     |    1 
 SunshineIns/src/page/Newly.jsx                                      |    5 
 SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.wxss            |    7 
 SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.wxml    |   19 
 SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.json          |    6 
 SunshineIns/src/page/LawSubscribeDetail.jsx                         |  215 +++
 SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.wxss |    1 
 SunshineLnsMinApp/app.json                                          |    3 
 SunshineLnsMinApp/pages/zdyf/zdyf.js                                |   79 +
 SunshineLnsMinApp/pages/zhwj/zhwj.wxml                              |   14 
 SunshineLnsMinApp/pages/me/me.js                                    |    6 
 SunshineLnsMinApp/pages/pfyy/pfyy.json                              |    5 
 SunshineLnsMinApp/pages/rzcx/rzcx.wxml                              |   33 
 SunshineLnsMinApp/pages/rzcx/rzcx.js                                |  145 ++
 SunshineIns/src/index.jsx                                           |    6 
 SunshineLnsMinApp/pages/zdyf/zdyf.wxml                              |   36 
 SunshineLnsMinApp/pages/rzcxList/rzcxList.wxss                      |  111 +
 SunshineIns/src/fetch/searchLawFind.js                              |    6 
 SunshineLnsMinApp/pages/rzcxList/rzcxList.json                      |    6 
 SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.json    |    6 
 SunshineLnsMinApp/pages/pfyy/pfyy.wxss                              |  227 +++
 SunshineIns/src/fetch/appointmentDetail.js                          |    9 
 SunshineIns/src/page/LawSubscribe.jsx                               |  176 +++
 SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/props.js   |    1 
 SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.js   |    1 
 SunshineIns/src/page/CareListEdit.jsx                               |   86 +
 SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.json            |    4 
 SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.wxss          |    1 
 SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.wxml            |    8 
 SunshineLnsMinApp/pages/publicMsgDetails/publicMsgDetails.json      |    1 
 SunshineIns/src/fetch/index.js                                      |   14 
 SunshineLnsMinApp/project.config.json                               |    2 
 SunshineLnsMinApp/pages/rzcxList/rzcxList.js                        |   85 +
 SunshineIns/src/page/Sweeping.jsx                                   |    8 
 SunshineIns/src/data/menu.js                                        |   14 
 SunshineIns/src/page/KeyWord.jsx                                    |  224 +++
 SunshineIns/src/view/Questionnair/index.js                          |    5 
 SunshineIns/src/fetch/appointment.js                                |   15 
 SunshineLnsMinApp/pages/createSubList/createSubList.wxss            |  121 ++
 SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/utils.js   |    1 
 SunshineLnsMinApp/pages/createSubList/createSubList.js              |  162 ++
 SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.wxss   |    1 
 SunshineLnsMinApp/pages/law2Publicity/law2Publicity.wxml            |   38 
 SunshineLnsMinApp/pages/zhdtInfo/zhdtInfo.json                      |    2 
 SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.wxss    |  112 +
 SunshineLnsMinApp/pages/index/index.wxml                            |    6 
 81 files changed, 3,207 insertions(+), 230 deletions(-)

diff --git a/SunshineIns/src/data/menu.js b/SunshineIns/src/data/menu.js
index afab1fd..d7293f6 100644
--- a/SunshineIns/src/data/menu.js
+++ b/SunshineIns/src/data/menu.js
@@ -83,6 +83,20 @@
   icon: active,
   iconCheck: activeCheck,
   path: '/sweeping'
+},
+{
+  id: 'lawSubscribe',
+  name: '普法预约',
+  icon: active,
+  iconCheck: activeCheck,
+  path: '/lawSubscribe'
+},
+{
+  id: 'keyWord',
+  name: '关键词维护',
+  icon: active,
+  iconCheck: activeCheck,
+  path: '/keyWord'
 }, {
   id: 'activeManage',
   name: '法治活动',
diff --git a/SunshineIns/src/fetch/appointment.js b/SunshineIns/src/fetch/appointment.js
new file mode 100644
index 0000000..4f3ebfe
--- /dev/null
+++ b/SunshineIns/src/fetch/appointment.js
@@ -0,0 +1,15 @@
+import fetch from './_fetch';
+import { message } from 'antd';
+export default ({
+    userName,
+    nature,
+    content,
+    createTime,
+    status
+}) => fetch(`api/v1/appointment/finds?userName=${userName || ''}&nature=${nature || ''}&content=${content || ''}&createTime=${createTime || ''}&businessType=26&status=${status || ''}`)
+    .then(
+        json => json.data
+    )
+    .catch(
+        error => message.error('信息加载失败,请联系管理员', 2)
+    );
\ No newline at end of file
diff --git a/SunshineIns/src/fetch/appointmentDetail.js b/SunshineIns/src/fetch/appointmentDetail.js
new file mode 100644
index 0000000..288774c
--- /dev/null
+++ b/SunshineIns/src/fetch/appointmentDetail.js
@@ -0,0 +1,9 @@
+import fetch from './_fetch';
+import { message } from 'antd';
+export default (id) => fetch(`api/v1/appointment/find?id=${id}&flag=PC`)
+    .then(
+        json => json.data
+    )
+    .catch(
+        error => message.error('信息加载失败,请联系管理员', 2)
+    );
\ No newline at end of file
diff --git a/SunshineIns/src/fetch/getSweeping.js b/SunshineIns/src/fetch/getSweeping.js
index 761400d..84910b7 100644
--- a/SunshineIns/src/fetch/getSweeping.js
+++ b/SunshineIns/src/fetch/getSweeping.js
@@ -1,12 +1,11 @@
 import fetch from './_fetch';
 import { message } from 'antd';
 export default ({
-    userName,
-    nature,
-    content,
-    createTime,
+    contactName,
+    contactPhone,
+    activitiesTime,
     status
-}) => fetch(`api/v1/crackdown/finds?userName=${userName || ''}&nature=${nature || ''}&content=${content || ''}&createTime=${createTime || ''}&businessType=26&status=${status || ''}`)
+}) => fetch(`api/v1/crackdown/finds?contactName=${contactName || ''}&contactPhone=${contactPhone || ''}&activitiesTime=${activitiesTime || ''}&businessType=26&status=${status || ''}`)
     .then(
         json => json.data
     )
diff --git a/SunshineIns/src/fetch/index.js b/SunshineIns/src/fetch/index.js
index 89a0774..f69802e 100644
--- a/SunshineIns/src/fetch/index.js
+++ b/SunshineIns/src/fetch/index.js
@@ -93,6 +93,12 @@
 import tipoffQuery from './tipoffQuery';
 import getTipoffDetail from './getTipoffDetail';
 import tipoffReply from './tipoffReply';
+import appointment from './appointment';
+import appointmentDetail from './appointmentDetail';
+import searchLaw from './searchLaw';
+import searchLawFind from './searchLawFind';
+import searchLawSave from './searchLawSave';
+import searchLawDelete from './searchLawDelete';
 
 export default {
   domain,
@@ -189,5 +195,11 @@
   socialCompanydelete,
   tipoffQuery,
   getTipoffDetail,
-  tipoffReply
+  tipoffReply,
+  appointment,
+  appointmentDetail,
+  searchLaw,
+  searchLawFind,
+  searchLawSave,
+  searchLawDelete
 };
\ No newline at end of file
diff --git a/SunshineIns/src/fetch/searchLaw.js b/SunshineIns/src/fetch/searchLaw.js
new file mode 100644
index 0000000..6854653
--- /dev/null
+++ b/SunshineIns/src/fetch/searchLaw.js
@@ -0,0 +1,9 @@
+import fetch from './_fetch';
+import { message } from 'antd';
+export default ({ keywords }) => fetch(`api/v1/searchLaw/finds?keywords=${keywords || ''}`)
+    .then(
+        json => json.data
+    )
+    .catch(
+        error => message.error('列表加载失败,请联系管理员', 2)
+    );
diff --git a/SunshineIns/src/fetch/searchLawDelete.js b/SunshineIns/src/fetch/searchLawDelete.js
new file mode 100644
index 0000000..526911b
--- /dev/null
+++ b/SunshineIns/src/fetch/searchLawDelete.js
@@ -0,0 +1,9 @@
+import fetch from './_fetch';
+import { message } from 'antd';
+export default (id) => fetch(`api/v1/searchLaw/delete?id=${id || ''}`)
+    .then(
+        json => json.data
+    )
+    .catch(
+        error => message.error('列表加载失败,请联系管理员', 2)
+    );
diff --git a/SunshineIns/src/fetch/searchLawFind.js b/SunshineIns/src/fetch/searchLawFind.js
new file mode 100644
index 0000000..034adcc
--- /dev/null
+++ b/SunshineIns/src/fetch/searchLawFind.js
@@ -0,0 +1,6 @@
+import fetch from './_fetch';
+import { message } from 'antd';
+export default (id) => fetch(`api/v1/searchLaw/find?id=${id || ''}`)
+    .catch(
+        error => message.error('列表加载失败,请联系管理员', 2)
+    );
diff --git a/SunshineIns/src/fetch/searchLawSave.js b/SunshineIns/src/fetch/searchLawSave.js
new file mode 100644
index 0000000..9e3873c
--- /dev/null
+++ b/SunshineIns/src/fetch/searchLawSave.js
@@ -0,0 +1,8 @@
+
+import fetch from './_fetch';
+
+export default (savedate) => {
+    return fetch(`api/v1/searchLaw/save`,
+        savedate
+    );
+}
diff --git a/SunshineIns/src/index.jsx b/SunshineIns/src/index.jsx
index 84f0ab9..e18b46a 100644
--- a/SunshineIns/src/index.jsx
+++ b/SunshineIns/src/index.jsx
@@ -16,6 +16,7 @@
 import Company from './page/Company';
 // 涉未成年负责部门组织
 import UnderAgeList from './page/UnderAgeList';
+import KeyWord from './page/KeyWord';
 import ActiveManage from './page/ActiveManage';
 import ActiveManageEdit from './page/ActiveManageEdit';
 import ActiveManageEditquestionnaire from './page/ActiveManageEditquestionnaire';
@@ -29,6 +30,8 @@
 import SnapshotDetail from './page/SnapshotDetail';
 import Sweeping from './page/Sweeping';
 import SweepingDetail from './page/SweepingDetail';
+import LawSubscribe from './page/LawSubscribe';
+import LawSubscribeDetail from './page/LawSubscribeDetail';
 import MsgDetail from './page/MsgDetail';
 import UserManage from './page/UserManage';
 import UserDetail from './page/UserDetail';
@@ -85,6 +88,7 @@
           <Route path='/supPerson' component={SupPerson} />
           <Route path='/company' component={Company} />
           <Route path='/underAgeList' component={UnderAgeList} />
+          <Route path='/keyWord' component={KeyWord} />
           <Route path='/knowledgeBase' component={KnowledgeBase} />
           <Route path='/articlePublish' component={ArticlePublish} />
           <Route path='/articleEidt/:id' component={ArticleEidt} />
@@ -96,6 +100,8 @@
           <Route path='/snapshotDetail/:id/:flag' component={SnapshotDetail} />
           <Route path='/sweeping' component={Sweeping} />
           <Route path='/sweepingDetail/:id/:flag' component={SweepingDetail} />
+          <Route path='/lawSubscribe' component={LawSubscribe} />
+          <Route path='/lawSubscribeDetail/:id/:flag' component={LawSubscribeDetail} />
           <Route path='/userDetail/:id/:flag' component={UserDetail} />
           <Route path='/insideUser' component={InsideUser} />
           <Route path='/updatePWD/:id' component={UpdatePWD} />
diff --git a/SunshineIns/src/page/ActiveManageEditquestionnaire.jsx b/SunshineIns/src/page/ActiveManageEditquestionnaire.jsx
index e6f253e..d1368d8 100644
--- a/SunshineIns/src/page/ActiveManageEditquestionnaire.jsx
+++ b/SunshineIns/src/page/ActiveManageEditquestionnaire.jsx
@@ -34,6 +34,7 @@
   }
 
   submitQuestionTemp = (questionDtos, extraData) => {
+    console.log('extraData',extraData)
     const { initData } = this.state;
     console.log('questionDtos', questionDtos);
     if (!extraData.questionnairTitle) {
@@ -49,6 +50,7 @@
       ...initData,
       title: extraData.questionnairTitle,
       content: extraData.questionnairDescription,
+      businessType: extraData.questionnairBusinessType,
       questionDtos
     }).then(res => {
       console.log('res', res);
@@ -68,6 +70,7 @@
   render() {
 
     const { data, loading, resetKey, initData, btnLoading } = this.state;
+    console.log('initData',initData)
     return (
       <div className="app-page">
         <HeadView history={this.props.history} />
@@ -103,6 +106,9 @@
                     <h4 style={{ marginBottom: 0 }}>
                       问卷描述:{initData.content || '暂无'}
                     </h4>
+                    <h4 style={{ marginBottom: 0 }}>
+                      业务类型{initData.businessType || '暂无'}
+                    </h4>
                   </div>
                 </div>
               }
diff --git a/SunshineIns/src/page/CareListEdit.jsx b/SunshineIns/src/page/CareListEdit.jsx
index a0417c0..60aaea1 100644
--- a/SunshineIns/src/page/CareListEdit.jsx
+++ b/SunshineIns/src/page/CareListEdit.jsx
@@ -8,6 +8,8 @@
 import TableView from '../view/TableView';
 import ImageBoxView from '../view/ImageBoxView'
 // 引入编辑器以及编辑器样式
+import BraftEditor from 'braft-editor'
+import 'braft-editor/dist/index.css'
 import Fetch from '../fetch';
 import moment from 'moment';
 const format = 'HH:mm';
@@ -50,6 +52,8 @@
             status: '',
             loading: false,
             socialTaskObject: '',
+            editorState: BraftEditor.createEditorState(null),
+            editorStatetaskProcess: BraftEditor.createEditorState(null),
         };
     }
 
@@ -80,9 +84,11 @@
                         endHour: moment(endTime).format(format),
                         taskType: res.taskType || 1
                     },
+                    editorState: BraftEditor.createEditorState(res.taskRequire),
+                    editorStatetaskProcess: BraftEditor.createEditorState(res.taskProcess),
                     taskType: res.taskType || 1,
                     // status: res.activityStatus || '',
-                    socialTaskObject: res.socialTaskObject ? { id: res.socialTaskObject.objectId, objectName: res.socialTaskObject.objectName, taskReport:res.socialTaskObject.taskReport } : {},
+                    socialTaskObject: res.socialTaskObject ? { id: res.socialTaskObject.objectId, objectName: res.socialTaskObject.objectName, taskReport: res.socialTaskObject.taskReport } : {},
                     disabled: res.status ? true : false,
                     fileList: res.attachments || [],
                     loading: false,
@@ -273,9 +279,41 @@
         )
     }
 
+    submitContent = () => {
+        // 在编辑器获得焦点时按下ctrl+s会执行此方法
+        // 编辑器内容提交到服务端之前,可直接调用editorState.toHTML()来获取HTML格式的内容
+        const htmlContent = this.state.editorState.toHTML()
+        this.setState(({ savedate }) => ({
+            savedate: {
+                ...savedate,
+                taskRequire: htmlContent
+            }
+        }))
+    }
+
+    submitLContent = () => {
+        // 在编辑器获得焦点时按下ctrl+s会执行此方法
+        // 编辑器内容提交到服务端之前,可直接调用editorState.toHTML()来获取HTML格式的内容
+        const htmlContent = this.state.editorState.toHTML()
+        this.setState(({ savedate }) => ({
+            savedate: {
+                ...savedate,
+                taskProcess: htmlContent
+            }
+        }))
+    }
+
+    handleEditorChange = (editorState) => {
+        this.setState({ editorState })
+    }
+
+    handleEditorLChange = (editorStatetaskProcess) => {
+        this.setState({ editorStatetaskProcess })
+    }
+
     handleCancel = () => this.setState({ previewVisible: false })
     render() {
-        const { savedate, previewVisible, socialTaskObject, fileList, dateSource, hitList, taskType, disabled, loading } = this.state;
+        const { savedate, editorState, socialTaskObject, fileList, editorStatetaskProcess, hitList, taskType, disabled, loading } = this.state;
         console.log('list', socialTaskObject)
         const props = {
             action: domain + 'api/v1/attachment/materials?entityId=' + savedate.id,
@@ -406,14 +444,52 @@
                         <div style={divStyle}>
                             <Row type="flex" align='middle' justify="space-around">
                                 <Col span={6} pull={0} style={{ textAlign: 'center' }}><span>任务要求</span></Col>
-                                <Col span={18} push={0} ><TextArea disabled={disabled} rows={4} placeholder="请输入任务要求" style={{ width: '92%' }} value={savedate.taskRequire || ""} onChange={this.saveInputChange} name='taskRequire' /></Col>
+                                <Col span={18} push={0} style={{ border: 'solid 1px rgba(0, 0, 0, 0.25)', borderRadius: '5PX' }}>
+
+                                    <BraftEditor
+                                        value={editorState}
+                                        disabled={disabled}
+                                        placeholder='请输入活动进程'
+                                        media={{
+                                            allowPasteImage: true, // 是否允许直接粘贴剪贴板图片(例如QQ截图等)到编辑器
+                                            image: true, // 开启图片插入功能
+                                            video: false, // 开启视频插入功能
+                                            audio: false, // 开启音频插入功能
+                                            uploadFn: this.uploadFn
+                                        }}
+                                        excludeControls={['emoji']}
+                                        onChange={this.handleEditorChange}
+                                        onSave={this.submitContent}
+                                        onBlur={this.submitContent}
+                                    />
+                                    {/* <TextArea disabled={disabled} rows={4} placeholder="请输入任务要求" style={{ width: '92%' }} value={savedate.taskRequire || ""} onChange={this.saveInputChange} name='taskRequire' /> */}
+                                </Col>
                             </Row>
                         </div>
 
                         <div style={divStyle}>
                             <Row type="flex" align='middle' justify="space-around">
                                 <Col span={6} pull={0} style={{ textAlign: 'center' }}><span>任务流程</span></Col>
-                                <Col span={18} push={0} ><TextArea disabled={disabled} rows={4} placeholder="请输入任务流程" style={{ width: '92%' }} value={savedate.taskProcess || ""} onChange={this.saveInputChange} name='taskProcess' /></Col>
+                                <Col span={18} push={0} style={{ border: 'solid 1px rgba(0, 0, 0, 0.25)', borderRadius: '5PX' }}>
+
+                                    <BraftEditor
+                                        value={editorStatetaskProcess}
+                                        disabled={disabled}
+                                        placeholder='请输入活动进程'
+                                        media={{
+                                            allowPasteImage: true, // 是否允许直接粘贴剪贴板图片(例如QQ截图等)到编辑器
+                                            image: true, // 开启图片插入功能
+                                            video: false, // 开启视频插入功能
+                                            audio: false, // 开启音频插入功能
+                                            uploadFn: this.uploadFn
+                                        }}
+                                        excludeControls={['emoji']}
+                                        onChange={this.handleEditorLChange}
+                                        onSave={this.submitLContent}
+                                        onBlur={this.submitLContent}
+                                    />
+                                </Col>
+                                {/* <Col span={18} push={0} ><TextArea disabled={disabled} rows={4} placeholder="请输入任务流程" style={{ width: '92%' }} value={savedate.taskProcess || ""} onChange={this.saveInputChange} name='taskProcess' /></Col> */}
                             </Row>
                         </div>
 
@@ -459,7 +535,7 @@
                                             </Col>
                                         </Row>
                                     </div>
-                                </div> :''
+                                </div> : ''
                         }
 
                         {
diff --git a/SunshineIns/src/page/KeyWord.jsx b/SunshineIns/src/page/KeyWord.jsx
new file mode 100644
index 0000000..780c1b0
--- /dev/null
+++ b/SunshineIns/src/page/KeyWord.jsx
@@ -0,0 +1,224 @@
+import React from 'react';
+
+import HeadView from '../view/HeadView';
+import TableBtnView from '../view/TableBtnView';
+import CommonSearchForm from '../view/CommonSearchForm';
+import { Input, Button, DatePicker, Divider, Modal, message } from 'antd'
+import moment from 'moment'
+import Fetch from '../fetch';
+import TableView from '../view/TableView';
+const confirm = Modal.confirm;
+export default class KeyWord extends React.Component {
+  constructor(props) {
+    super(props);
+    this.state = {
+      data: [],
+      loading: false,
+      visible: false,
+      savedate: {},
+      formData: {
+        __key: Date.now(),
+        keywords: '',
+      },
+      resetKey: Date.now(),
+      closeKey: Date.now()
+    };
+  }
+
+  componentDidMount() {
+    document.title = '关键词维护';
+    this.getData();
+  }
+
+  setFormData = data => {
+    console.log('form', data);
+    this.setState({
+      formData: data,
+    });
+  }
+
+  searchonClick = data => {
+    console.log('form', data);
+    this.setState({
+      formData: data,
+    });
+    this.setState({ loading: true })
+    Fetch.searchLaw({ ...data })
+      .then(res => {
+        for (var i = 0; i < res.length; i++) {
+          res[i]['index'] = i + 1;
+        }
+        this.setState({
+          data: res,
+          loading: false
+        });
+      });
+  }
+  getData = () => {
+    const { formdata } = this.state;
+    this.setState({ loading: true })
+    Fetch.searchLaw({ formdata })
+      .then(res => {
+        console.log(res)
+        this.setState({
+          data: res,
+          loading: false
+        });
+      });
+  }
+  onInputChange = ({ target: { value, name } }) => {
+    this.setState(({ formdata }) => ({
+      formdata: {
+        ...formdata,
+        [name]: value
+      }
+    }))
+  }
+  saveInputChange = ({ target: { value, name } }) => {
+    this.setState(({ savedate }) => ({
+      savedate: {
+        ...savedate,
+        [name]: value
+      }
+    }))
+  }
+  Seaech = () => {
+    const { formdata } = this.state;
+    Fetch.searchLaw(formdata)
+      .then(res => {
+        for (var i = 0; i < res.length; i++) {
+          res[i]['index'] = i + 1;
+        }
+        this.setState({
+          data: res
+        });
+      });
+  }
+  Reset = () => {
+    this.setState({
+      resetKey: Date.now(),
+      formdata: {}
+    }, this.getData);
+  }
+
+  showModal = (id) => {
+  console.log(id)
+    this.setState({
+      visible: true,
+    });
+    Fetch.searchLawFind(id)
+      .then(res => {
+        console.log(res)
+        this.setState({ savedate: res })
+      })
+  }
+
+  handleOk = () => {
+    this.setState({ loading: true });
+    const { savedate } = this.state;
+    console.log(savedate)
+    if (!savedate.keywords) {
+      return message.warning("关键词不能为空");
+    }
+    Fetch.searchLawSave(savedate)
+      .then(res => {
+        console.log(res)
+        if (res.code === 0) {
+          this.setState({
+            loading: false,
+            visible: false,
+            closeKey: Date.now()
+          }, this.getData);
+          message.success("提交成功!")
+        } else {
+          message.error('保存失败,请联系管理员', 2)
+        }
+      });
+  }
+
+  handleCancel = () => {
+    this.setState({
+      closeKey: Date.now(),
+      visible: false
+    });
+  }
+
+  deleteItems = (id) => {
+    confirm({
+      title: '确认要删除这条数据吗?',
+      onOk: () => {
+        Fetch.searchLawDelete(id)
+          .then(data => {
+              message.success("删除成功!")
+              this.setState({
+                resetKey: Date.now(),
+                formdata: {}
+              }, this.getData);
+          })
+      }
+    });
+  }
+  render() {
+    const columns = [{
+      title: '序号',
+      dataIndex: 'index',
+      key: 'index'
+    }, {
+      title: '关键词',
+      dataIndex: 'keywords',
+      key: 'keywords'
+    }, {
+      title: '创建时间',
+      dataIndex: 'createTime',
+      key: 'createTime',
+      render: text => <span>{moment(text).format("YYYY-MM-DD HH:mm")}</span>
+    }, {
+      title: '操作',
+      key: 'action',
+      render: (text, record) => (
+        <span>
+          <label onClick={() => this.showModal(record.id)} className='theme-color' style={{ cursor: 'pointer' }}>编辑</label>
+          <Divider type="vertical" />
+          <label onClick={() => this.deleteItems(record.id)} className='theme-color' style={{ cursor: 'pointer' }}>删除</label>
+        </span>
+      ),
+    }];
+    const { data, resetKey, visible, loading, savedate, closeKey, formData } = this.state;
+    console.log(savedate)
+    return (
+
+      <div className="app-page">
+        <HeadView history={this.props.history} />
+        <div style={{ marginLeft: '90%', marginBottom: '20px', marginTop: '20px' }}>
+          <Button type="primary" size='large' onClick={() => this.showModal('new')}>新增</Button>
+        </div>
+        <div style={{ background: '#fff', margin: 20 }}>
+          <CommonSearchForm
+            {...this.props}
+            formData={formData}
+            setFormData={this.setFormData}
+            searchonClick={this.searchonClick}
+            pathName={this.props.location.pathname}
+            data={[
+              {
+                type: 'input', name: '关键词', label: '关键词', key: 'keywords'
+              }
+            ]} />
+          <TableView columns={columns} data={data} pageSize='10' size='default' loading={loading} />
+        </div>
+        <Modal
+          key={closeKey}
+          confirmLoading={loading}
+          visible={visible}
+          title="新增关键词"
+          onOk={this.handleOk}
+          onCancel={this.handleCancel}
+          bodyStyle={{ lineHeight: 4 }}
+        >
+          <Input addonBefore="关键词" name='keywords' onChange={this.saveInputChange} value={savedate.keywords || ''} />
+        </Modal>
+      </div>
+    );
+  }
+
+}
diff --git a/SunshineIns/src/page/LawSubscribe.jsx b/SunshineIns/src/page/LawSubscribe.jsx
new file mode 100644
index 0000000..ea15bff
--- /dev/null
+++ b/SunshineIns/src/page/LawSubscribe.jsx
@@ -0,0 +1,176 @@
+/**
+ * 徐祥健<xuxj@hugeinfo.com.cn>
+ * 2018年9月18日 15:24
+ *
+ */
+
+
+import React from 'react';
+
+import HeadView from '../view/HeadView';
+import TableBtnView from '../view/TableBtnView';
+import { Input, Button, DatePicker, Divider, message, Breadcrumb, Select, Badge } from 'antd';
+import moment from 'moment';
+import Fetch from '../fetch';
+import TableView from '../view/TableView';
+const Option = Select.Option;
+function typeOfName(type) {
+  switch (type) {
+    case 1:
+      return "涉黑涉恶违法犯罪行为";
+    case 2:
+      return "涉黑涉恶违法犯罪保护伞";
+    case 3:
+      return "其他";
+    default:
+      return "Unkonw";
+  }
+}
+export default class LawSubscribe extends React.Component {
+  constructor(props) {
+    super(props);
+    this.state = {
+      data: [],
+      formdata: {},
+      resetKey: Date.now(),
+      loading: false
+    };
+  }
+
+  componentDidMount() {
+
+    document.title = '普法预约';
+    this.getData();
+  }
+
+  getData = () => {
+    const { formdata } = this.state;
+    Fetch.appointment(formdata)
+      .then(res => {
+        for (var i = 0; i < res.length; i++) {
+          res[i]['index'] = i + 1;
+        }
+        this.setState({
+          data: res
+        });
+      });
+  }
+  onInputChange = ({ target: { value, name } }) => {
+    this.setState(({ formdata }) => ({
+      formdata: {
+        ...formdata,
+        [name]: value
+      }
+    }))
+  }
+
+  Seaech = () => {
+    const { formdata } = this.state;
+    Fetch.appointment(formdata)
+      .then(res => {
+        for (var i = 0; i < res.length; i++) {
+          res[i]['index'] = i + 1;
+        }
+        this.setState({
+          data: res
+        });
+      });
+  }
+  Reset = () => {
+    this.setState({
+      resetKey: Date.now(),
+      formdata: {}
+    }, this.getData);
+  }
+  onClick = (id, flag) => {
+    this.props.history.push('/lawSubscribeDetail/' + id + '/' + flag)
+  }
+  deleteItems = (id) => {
+    confirm({
+      title: '确认要删除这条数据吗?',
+      onOk: () => {
+        Fetch.deleteCompany(id)
+          .then(data => {
+            if (data.statuscode == 1) {
+              message.success("删除成功!")
+              this.setState({
+                resetKey: Date.now(),
+                formdata: {}
+              }, this.getData);
+            } else {
+              message.error('删除失败,请联系管理员', 2)
+            }
+          })
+      }
+    });
+  }
+  render() {
+    const columns = [{
+      title: '序号',
+      dataIndex: 'index',
+      key: 'index'
+    }, {
+      title: '联系人',
+      dataIndex: 'contactName',
+      key: 'contactName'
+    }, {
+      title: '联系电话',
+      dataIndex: 'contactPhone',
+      key: 'contactPhone'
+    }, {
+      title: '状态',
+      dataIndex: 'status',
+      key: 'status',
+      render: text => (
+        text == 1 ?
+          <Badge count={'待回复'} /> : <Badge count={'已回复'} style={{ backgroundColor: '#52c41a' }} />
+      )
+    }, {
+      title: '活动时间',
+      dataIndex: 'activitiesTime',
+      key: 'activitiesTime',
+      render: text => <span>{moment(text).format("YYYY-MM-DD HH:mm")}</span>
+    }, {
+      title: '操作',
+      key: 'action',
+      render: (text, record) => (
+        <span>
+          {
+            text.status == 1 ? <span>
+              <label className='theme-color' onClick={() => this.onClick(record.id, 'do')} style={{ cursor: 'pointer' }}>处理</label>
+              <Divider type="vertical" />
+            </span> : null
+          }
+          <label className='theme-color' onClick={() => this.onClick(record.id, 'see')} style={{ cursor: 'pointer' }}>查看</label>
+        </span>
+      ),
+    }];
+    const { data, loading, resetKey } = this.state;
+    return (
+      <div className="app-page">
+        <HeadView history={this.props.history} />
+        {/* <Breadcrumb style={{ padding: '20px' }}>
+          <Breadcrumb.Item><a href="">后台中心</a></Breadcrumb.Item>
+          <Breadcrumb.Item>扫黑除恶</Breadcrumb.Item>
+        </Breadcrumb> */}
+        <TableBtnView name={''} key={resetKey}>
+          <Input placeholder="联系人模糊查询" style={{ width: "200px" }} name='contactName' onChange={this.onInputChange} />
+          <Input placeholder="联系电话模糊查询" style={{ width: "200px" }} name='contactPhone' onChange={this.onInputChange} />
+          <Select
+            style={{ width: 200 }}
+            placeholder="根据状态查询"
+            onChange={(value) => this.onInputChange({ target: { name: 'status', value } })}
+          >
+            <Option value="2">已回复</Option>
+            <Option value="1">待回复</Option>
+          </Select>
+          <DatePicker onChange={(_, value) => this.onInputChange({ target: { name: 'activitiesTime', value } })} placeholder="根据活动时间查询" />
+          <Button type="primary" onClick={this.Seaech}>查询</Button>
+          <Button onClick={this.Reset}>重置</Button>
+        </TableBtnView>
+        <TableView columns={columns} data={data} pageSize='10' size='default' loading={loading} />
+      </div>
+    );
+  }
+
+}
diff --git a/SunshineIns/src/page/LawSubscribeDetail.jsx b/SunshineIns/src/page/LawSubscribeDetail.jsx
new file mode 100644
index 0000000..098b53f
--- /dev/null
+++ b/SunshineIns/src/page/LawSubscribeDetail.jsx
@@ -0,0 +1,215 @@
+/**
+ * 柯礼钦<kelq@hugeinfo.com.cn>
+ * 2018年9月4日 16:00
+ *
+ */
+
+import React from "react";
+import { Input, Button, message, Breadcrumb } from "antd";
+import moment from "moment";
+import BusDetailView from "../view/BusDetailView";
+import LineView from "../view/LineView";
+import HeadView from "../view/HeadView";
+
+import Fetch from "../fetch";
+const { TextArea } = Input;
+const replyAdmin = {
+  display: 'block',
+  float: 'left',
+  color: 'green',
+}
+
+const replyUser = {
+  display: 'block',
+  float: 'left',
+  color: '#1790ff'
+}
+
+const timeUser = {
+  display: 'block',
+  color: '#1790ff'
+}
+
+const timeAdmin = {
+  display: 'block',
+  color: 'green'
+}
+function sexOfName(sexOfName) {
+  switch (sexOfName) {
+    case 0:
+      return "未知"
+    case 1:
+      return '男'
+    case 2:
+      return '女'
+  }
+}
+export default class LawSubscribeDetail extends React.Component {
+  constructor(props) {
+    super(props);
+    this.state = {
+      savedate: {},
+      sweeping: {},
+      userInfo: {},
+      data: {},
+      ReplyLogs: [],
+    };
+  }
+
+  componentDidMount() {
+    const { id } = this.props.match.params;
+    Fetch.appointmentDetail(id).then(data => {
+      console.log(data.lawAppointment)
+      this.setState(
+        {
+          data: data.lawAppointment,
+          ReplyLogs: data.ReplyLogs || [],
+          userInfo: data.userInfo,
+          sweeping: data.crimeCrackdown,
+          savedate:
+          {
+            businessId: id,
+            businessType: 27,
+            approvalStatus: 2
+          }
+        }
+      );
+    })
+  }
+
+  goBack = () => {
+    this.props.history.goBack();
+  };
+
+
+  onInputChange = ({ target: { value, name } }) => {
+    this.setState(({ savedate }) => ({
+      savedate: {
+        ...savedate,
+        [name]: value
+      }
+    }))
+  }
+
+  submitAudit = () => {
+
+    const { savedate } = this.state;
+    console.log(savedate);
+    if (!savedate.opinion) {
+      message.warning("回复内容不能为空!");
+      return;
+    }
+
+    Fetch.snapshotReply(savedate).then(res => {
+      if (res.code === 0) {
+        message.success("回复成功", 2, () => {
+          this.props.history.goBack();
+        });
+      } else {
+        message.error("回复失败,请联系管理员", 2);
+      }
+    });
+  };
+
+  render() {
+
+    // 居中样式
+    const center = {
+      display: "flex",
+      alignItems: "center",
+      justifyContent: "center"
+    };
+    const { sweeping, data, userInfo, ReplyLogs } = this.state;
+    const { flag } = this.props.match.params;
+    return (
+      <div className="app-page">
+        <HeadView history={this.props.history} />
+        <Breadcrumb style={{ padding: '20px' }}>
+          <Breadcrumb.Item><a href="index.html#/lawSubscribe">普法预约</a></Breadcrumb.Item>
+          <Breadcrumb.Item>普法预约详情</Breadcrumb.Item>
+        </Breadcrumb>
+        <BusDetailView>
+          <div>
+            <LineView title="申请信息" style="14vh" lineHeight="34px">
+
+              <table>
+                <tbody>
+                  <tr>
+                    <td className="table-vaule1">联系人</td>
+                    <td className="table-vaule2">{data.contactName}</td>
+                    <td className="table-vaule3">联系电话</td>
+                    <td className="table-vaule4">{data.contactPhone}</td>
+                  </tr>
+                  <tr>
+                    <td className="table-vaule1">学校名称</td>
+                    <td className="table-vaule2">{data.schoolName}</td>
+                    <td className="table-vaule3">学校地址</td>
+                    <td className="table-vaule4">{data.schoolAddress}</td>
+                  </tr>
+                </tbody>
+              </table>
+
+            </LineView>
+            <LineView title="详细说明" style="13vh" lineHeight="20px">
+              <span>{data.content}</span>
+            </LineView>
+          </div>
+          {
+            ReplyLogs ?
+              <LineView title="回复记录" style="15vh">
+                {ReplyLogs.map((contacts, key) => (
+                  <div style={{ width: '100%', height: '70px' }} key={key}>
+                    {contacts.userType === 1 ?
+                      <React.Fragment>
+                        <div style={timeUser} >{moment(contacts.createTime).format('YYYY/MM/DD HH:mm:ss')}</div>
+                        <div style={replyUser}>{contacts.content}</div>
+                      </React.Fragment>
+                      :
+                      <React.Fragment>
+                        <div style={timeAdmin} > {contacts.replyerName}:{moment(contacts.createTime).format('YYYY/MM/DD HH:mm:ss')}</div>
+                        <div style={replyAdmin}>{contacts.content}</div>
+                      </React.Fragment>
+                    }
+
+                  </div>
+                ))}
+              </LineView>
+              : null}
+          {flag == "do" ?
+            (data.status == 1 ? (
+              <LineView title="回复" lineHeight="50px">
+                <table>
+                  <tbody>
+                    <tr>
+                      <td>回复内容</td>
+                      <td>
+                        <TextArea
+                          placeholder="请输入回复内容"
+                          autosize={{ minRows: 2, maxRows: 6 }}
+                          onChange={({ target: { value } }) => this.onInputChange({ target: { name: 'opinion', value } })}
+                        />
+                      </td>
+                    </tr>
+                  </tbody>
+                </table>
+                <div>
+                  <Button
+                    type="primary"
+                    className="app-btn"
+                    onClick={this.submitAudit}
+                  >
+                    提交回复
+                  </Button>
+                  <Button className="app-btn" onClick={this.goBack}>
+                    返回
+                  </Button>
+                </div>
+              </LineView>
+            ) : <div style={{ textAlign: 'center' }}><Button className="app-btn" onClick={this.goBack}>返回</Button></div>
+            ) : <div style={{ textAlign: 'center' }}><Button className="app-btn" onClick={this.goBack}>返回</Button></div>
+          }
+        </BusDetailView>
+      </div>
+    );
+  }
+}
diff --git a/SunshineIns/src/page/Newly.jsx b/SunshineIns/src/page/Newly.jsx
index fdcf575..74d15da 100644
--- a/SunshineIns/src/page/Newly.jsx
+++ b/SunshineIns/src/page/Newly.jsx
@@ -158,8 +158,12 @@
   submitQuestionTemp = (questionDtos, extraData) => {
     const { initData } = this.state;
     console.log('questionDtos', questionDtos);
+    console.log('initData', initData);
     if (!extraData.questionnairTitle) {
       return message.error('请填写问卷标题');
+    }
+    if (!extraData.questionnairBusinessType) {
+      return message.error('请选择业务类型');
     }
     questionDtos = questionDtos.map(({ type, title, required, remarkText, options, scores, warnFlag }) => ({
       type, title, required, remarkText, options, scores, warnFlag
@@ -171,6 +175,7 @@
       ...initData,
       title: extraData.questionnairTitle,
       content: extraData.questionnairDescription,
+      businessType: extraData.questionnairBusinessType,
       questionDtos
     }).then(res => {
       console.log('res', res);
diff --git a/SunshineIns/src/page/QuestionDetail.jsx b/SunshineIns/src/page/QuestionDetail.jsx
index ca89b4e..85413ad 100644
--- a/SunshineIns/src/page/QuestionDetail.jsx
+++ b/SunshineIns/src/page/QuestionDetail.jsx
@@ -36,6 +36,7 @@
   submitQuestionTemp = (questionDtos, extraData) => {
     const { initData } = this.state;
     console.log('questionDtos', questionDtos);
+    console.log('initData', initData);
     if (!extraData.questionnairTitle) {
       return message.error('请填写问卷标题');
     }
@@ -49,6 +50,7 @@
       ...initData,
       title: extraData.questionnairTitle,
       content: extraData.questionnairDescription,
+      businessType: extraData.questionnairBusinessType,
       questionDtos
     }).then(res => {
       console.log('res', res);
@@ -103,6 +105,9 @@
                     <h4 style={{ marginBottom: 0 }}>
                       问卷描述:{initData.content || '暂无'}
                     </h4>
+                    <h4 style={{ marginBottom: 0 }}>
+                      业务类型:{initData.businessType || '暂无'}
+                    </h4>
                   </div>
                 </div>
               }
diff --git a/SunshineIns/src/page/Sweeping.jsx b/SunshineIns/src/page/Sweeping.jsx
index e957bec..9142bc3 100644
--- a/SunshineIns/src/page/Sweeping.jsx
+++ b/SunshineIns/src/page/Sweeping.jsx
@@ -45,7 +45,7 @@
 
   getData = () => {
     const { formdata } = this.state;
-    Fetch.getSweeping(formdata)
+    Fetch.appointment(formdata)
       .then(res => {
         for (var i = 0; i < res.length; i++) {
           res[i]['index'] = i + 1;
@@ -66,7 +66,7 @@
 
   Seaech = () => {
     const { formdata } = this.state;
-    Fetch.getSweeping(formdata)
+    Fetch.appointment(formdata)
       .then(res => {
         for (var i = 0; i < res.length; i++) {
           res[i]['index'] = i + 1;
@@ -154,10 +154,10 @@
     return (
       <div className="app-page">
         <HeadView history={this.props.history} />
-        <Breadcrumb style={{ padding: '20px' }}>
+        {/* <Breadcrumb style={{ padding: '20px' }}>
           <Breadcrumb.Item><a href="">后台中心</a></Breadcrumb.Item>
           <Breadcrumb.Item>扫黑除恶</Breadcrumb.Item>
-        </Breadcrumb>
+        </Breadcrumb> */}
         <TableBtnView name={''} key={resetKey}>
           <Select
             style={{ width: 200 }}
diff --git a/SunshineIns/src/view/Questionnair/index.js b/SunshineIns/src/view/Questionnair/index.js
index d96ad09..5128d85 100644
--- a/SunshineIns/src/view/Questionnair/index.js
+++ b/SunshineIns/src/view/Questionnair/index.js
@@ -43,6 +43,7 @@
       ],
     questionnairTitle: '',
     questionnairDescription: '',
+    questionnairBusinessType:'',
     curMoveItem: null,
     drag: false,
     scrollTo: 0,
@@ -261,7 +262,8 @@
       editorShake,
       scrollTo,
       questionnairTitle,
-      questionnairDescription
+      questionnairDescription,
+      questionnairBusinessType
     } = this.state;
 
     const { submitQuestionTemp, btnLoading, initData } = this.props;
@@ -308,6 +310,7 @@
           questionnairSign={this.sign}
           questionnairTitle={questionnairTitle}
           questionnairDescription={questionnairDescription}
+          questionnairBusinessType={questionnairBusinessType}
           onBlurTitle={this.blurTitle}
           onChangeSign={this.handleSgin}
           submitQuestionTemp={submitQuestionTemp}
diff --git a/SunshineIns/src/view/QuestionnairContent/index.js b/SunshineIns/src/view/QuestionnairContent/index.js
index 4b4c5b4..7b7de0a 100644
--- a/SunshineIns/src/view/QuestionnairContent/index.js
+++ b/SunshineIns/src/view/QuestionnairContent/index.js
@@ -2,23 +2,25 @@
 import './index.scss';
 import Input from '../../libs/Input';
 // import Button from '../../libs/Button';
-import { Button } from 'antd';
+import { Button, Select } from 'antd';
 
 // import Default from '../../assets/scale_default.png'
-
+const Option = Select.Option;
 class QuestionnairContent extends React.PureComponent {
   state = {
     questionnairSign: false,
     questionnairTitle: '',
-    questionnairDescription: ''
+    questionnairDescription: '',
+    questionnairBusinessType: ''
   };
 
   componentDidMount() {
-    const { title, content } = this.props.initData;
+    const { title, content, businessType } = this.props.initData;
     console.log(title);
     this.setState({
       questionnairTitle: title,
-      questionnairDescription: content
+      questionnairDescription: content,
+      questionnairBusinessType: businessType
     });
   }
   //新增题目时内容页滚动到底部
@@ -62,11 +64,12 @@
     );
   };
 
-  handleChange = (e, key) => {
+  handleChange = ({ target: { value, name } }) => {
+    console.log(value, name)
     this.setState({
-      [key]: e.target.value
+      [name]: value
     });
-  };
+  }
 
   handleBlur = () => {
     // const { onBlurTitle } = this.props;
@@ -79,7 +82,8 @@
     const {
       questionnairSign,
       questionnairTitle,
-      questionnairDescription
+      questionnairDescription,
+      questionnairBusinessType
     } = this.state;
     const { submitQuestionTemp, editors, btnLoading } = this.props;
 
@@ -89,9 +93,8 @@
         <Input
           placeholder="问卷标题"
           value={questionnairTitle}
-          onChange={e => {
-            this.handleChange(e, 'questionnairTitle');
-          }}
+          name='questionnairTitle'
+          onChange={this.handleChange}
           onBlur={this.handleBlur}
           style={{
             height: 45,
@@ -110,9 +113,8 @@
         <Input
           placeholder="问卷描述"
           value={questionnairDescription}
-          onChange={e => {
-            this.handleChange(e, 'questionnairDescription');
-          }}
+          name='questionnairDescription'
+          onChange={this.handleChange}
           onBlur={this.handleBlur}
           style={{
             height: 25,
@@ -126,6 +128,27 @@
         />
       </div>
     );
+    const questionnairBusinessType1 = (
+      <div className="title-inner" style={{ marginTop: 10 }}>
+        <span style={{ color: 'red' }}>*</span>
+        <Select placeholder="业务类型"
+          value={questionnairBusinessType}
+          style={{
+            width: '100%',
+            textAlign: 'center',
+            fontSize: 18,
+            color: '#666',
+            fontFamily: 'PingFangSC-Medium'
+          }}
+          onChange={(value) => this.handleChange({ target: { name: 'questionnairBusinessType', value } })}
+        >
+          <Option value='1'>企业体检</Option>
+          <Option value='2'>培训活动</Option>
+          <Option value='3'>未检调查</Option>
+          <Option value='4'>刑执监督</Option>
+        </Select>
+      </div>
+    );
     return (
       <div className="questionnair-page" ref={el => (this.page = el)}>
         <div className="questionnair-page-banner">
@@ -137,6 +160,7 @@
         <div className="questionnair-page-title">
           {questionnairtitleEl}
           {questionnairDescriptionEl}
+          {questionnairBusinessType1}
         </div>
         <div
           className="questionnair-page-content"
@@ -165,7 +189,8 @@
                   // this.props.isThereEditor();
                   submitQuestionTemp(editors, {
                     questionnairTitle,
-                    questionnairDescription
+                    questionnairDescription,
+                    questionnairBusinessType
                   });
                 }}
               >
diff --git a/SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.js b/SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.js
new file mode 100644
index 0000000..8c9a8e3
--- /dev/null
+++ b/SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.js
@@ -0,0 +1,187 @@
+// Component/pickerYMDHM.js
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    date: {            // 属性名
+      type: null,     // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)
+      value: ""     // 属性初始值(可选),如果未指定则会根据类型选择一个
+    }
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    pickerArray: [],//日期控件数据list
+    pickerIndex: [],//日期控件选择的index
+    chooseIndex: [],//日期控件确认选择的index
+    chooseArray: [],//日期控件确认选择后的list
+    dateString: '',//页面显示日期
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    _onInit() {
+      let date = new Date();
+      if (this.data.date != "") {
+        let str = this.data.date;
+        str = str.replace(/-/g, "/");
+        date = new Date(str);
+      }
+      let pickerArray = this.data.pickerArray;
+      console.log(date.getFullYear());
+      //默认选择3年内
+      let year = [];
+      for (let i = date.getFullYear() - 1; i <= date.getFullYear() + 5; i++) {
+        year.push({ id: i, name: i + "年" });
+      }
+      // console.log(year);
+      let month = [];
+      for (let i = 1; i <= 12; i++) {
+        month.push({ id: i, name: i + "月" });
+      }
+      // console.log(month);
+      let dayNum = this._getNumOfDays(date.getFullYear(), date.getMonth() + 1);
+      let day = [];
+      for (let i = 1; i <= dayNum; i++) {
+        day.push({ id: i, name: i + "日" });
+      }
+      // console.log(day);
+      let time = [];
+      for (let i = 0; i <= 23; i++) {
+        if (i < 10) {
+          time.push({ id: i, name: "0" + i + "时" });
+        } else {
+          time.push({ id: i, name: i + "时" });
+        }
+      }
+      // console.log(time);
+      let division = [];
+      for (let i = 0; i <= 59; i++) {
+        if (i < 10) {
+          division.push({ id: i, name: "0" + i + "分" });
+        } else {
+          division.push({ id: i, name: i + "分" });
+        }
+      }
+      // console.log(division);
+      pickerArray[0] = year;
+      pickerArray[1] = month;
+      pickerArray[2] = day;
+      pickerArray[3] = time;
+      pickerArray[4] = division;
+      let mdate = {
+        date: date,
+        year: date.getFullYear() + '',
+        month: date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 + '',
+        day: date.getDate() < 10 ? '0' + date.getDate() : date.getDate() + '',
+        time: date.getHours() < 10 ? '0' + date.getHours() : date.getHours() + '',
+        division: date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() + ''
+      }
+      mdate.dateString = mdate.year + '-' + mdate.month + '-' + mdate.day + ' ' + mdate.time + ':' + mdate.division;
+      this.setData({
+        pickerArray,
+        pickerIndex: [1, date.getMonth(), date.getDate() - 1, date.getHours(), date.getMinutes()],
+        chooseIndex: [1, date.getMonth(), date.getDate() - 1, date.getHours(), date.getMinutes()],
+        chooseArray: pickerArray,
+        dateString: mdate.dateString
+      })
+      // console.log(date);
+      // this.triggerEvent('onPickerChange', mdate);
+      // console.log(this.data.pickerArray);
+      // console.log(this._getNumOfDays(2018, 10));
+    },
+    /**
+     * 
+     * 获取本月天数
+     * @param {number} year 
+     * @param {number} month 
+     * @param {number} [day=0] 0为本月0最后一天的
+     * @returns number 1-31
+     */
+    _getNumOfDays(year, month, day = 0) {
+      return new Date(year, month, day).getDate()
+    },
+    pickerChange: function (e) {
+      // console.log('picker发送选择改变,携带值为', e.detail.value)
+      let indexArr = e.detail.value;
+      // console.log(this.data.pickerArray[0][indexArr[0]].id + "\n" + this.data.pickerArray[1][indexArr[1]].id + "\n" + this.data.pickerArray[2][indexArr[2]].id);
+      const year = this.data.pickerArray[0][indexArr[0]].id;
+      const month = this.data.pickerArray[1][indexArr[1]].id;
+      const day = this.data.pickerArray[2][indexArr[2]].id;
+      const time = this.data.pickerArray[3][indexArr[3]].id;
+      const division = this.data.pickerArray[4][indexArr[4]].id;
+      let date = {
+        date: new Date(year + '-' + month + '-' + day + ' ' + time + ':' + division),
+        year: year + '',
+        month: month < 10 ? '0' + month : month + '',
+        day: day < 10 ? '0' + day : day + '',
+        time: time < 10 ? '0' + time : time + '',
+        division: division < 10 ? '0' + division : division + ''
+      }
+      date.dateString = date.year + '-' + date.month + '-' + date.day + ' ' + date.time + ':' + date.division;
+      // console.log(date);
+      this.setData({
+        chooseIndex: e.detail.value,
+        chooseArray: this.data.pickerArray,
+        dateString: date.dateString
+      })
+      this.triggerEvent('onPickerChange', date);
+    },
+    pickerColumnChange: function (e) {
+      // console.log('修改的列为', e.detail.column, ',值为', e.detail.value);
+      var data = {
+        pickerArray: this.data.pickerArray,
+        pickerIndex: this.data.pickerIndex
+      };
+      data.pickerIndex[e.detail.column] = e.detail.value;
+      if (e.detail.column == 1) {
+        let dayNum = this._getNumOfDays(data.pickerArray[0][data.pickerIndex[0]].id, e.detail.value + 1);
+        let day = [];
+        for (let i = 1; i <= dayNum; i++) {
+          day.push({ id: i, name: i + "日" });
+        }
+        if (dayNum < data.pickerIndex[2] + 1) {
+          data.pickerIndex[2] = dayNum - 1;
+        }
+        data.pickerArray[2] = day;
+      }
+      this.setData(data);
+    },
+    pickerCancel: function (e) {
+      // console.log("取消");
+      this.setData({
+        pickerIndex: this.data.chooseIndex,
+        pickerArray: this.data.chooseArray
+      })
+    },
+  },
+  // 以下是旧式的定义方式,可以保持对 <2.2.3 版本基础库的兼容
+  attached() {
+    // 在组件实例进入页面节点树时执行
+    // 在组件实例进入页面节点树时执行
+    // this._onInit();
+  },
+  ready() {
+    console.log('进入ready外层节点=', this.data.date);
+    this._onInit();
+  },
+  // 以下为新方法 >=2.2.3
+  lifetimes: {
+    attached() {
+      // 在组件实例进入页面节点树时执行
+      // this._onInit();
+    },
+    detached() {
+      // 在组件实例被从页面节点树移除时执行
+    },
+    ready() {
+      console.log('进入ready节点=', this.data.date);
+      this._onInit();
+    }
+  }
+})
\ No newline at end of file
diff --git a/SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.json b/SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.json
@@ -0,0 +1,4 @@
+{
+  "component": true,
+  "usingComponents": {}
+}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.wxml b/SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.wxml
new file mode 100644
index 0000000..9bb0dda
--- /dev/null
+++ b/SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.wxml
@@ -0,0 +1,8 @@
+<!--Component/pickerYMDHM.wxml-->
+<view class="container">
+  <picker mode="multiSelector" bindchange="pickerChange" bindcolumnchange="pickerColumnChange" bindcancel ="pickerCancel" value="{{pickerIndex}}" range="{{pickerArray}}" range-key="{{'name'}}">
+    <view class='showFont'>
+      {{date}}
+    </view>
+  </picker>
+</view>
diff --git a/SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.wxss b/SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.wxss
new file mode 100644
index 0000000..e9a572f
--- /dev/null
+++ b/SunshineLnsMinApp/Component/pickerYMDHM/pickerYMDHM.wxss
@@ -0,0 +1,7 @@
+/* Component/pickerYMDHM.wxss */
+.showFont{
+  font-size: 28rpx;
+  width:490rpx;
+  height:110rpx;
+  line-height:110rpx!important;
+}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/app.js b/SunshineLnsMinApp/app.js
index 2f01295..9653496 100644
--- a/SunshineLnsMinApp/app.js
+++ b/SunshineLnsMinApp/app.js
@@ -1,7 +1,7 @@
 var qcloud = require('./lib/index');
 //app.js
 App({
-  onLaunch: function() {
+  onLaunch: function () {
     // 展示本地存储能力
     var logs = wx.getStorageSync('logs') || []
     logs.unshift(Date.now())
@@ -10,16 +10,17 @@
   globalData: {
     userInfo: null,
     pageData: {},
-    url: 'https://nsjcy.hugeinfo.com.cn/nsjc-charge',
-    //url: 'http://192.168.0.31:8085/nsjc-charge',
+    // url: 'https://nsjcy.hugeinfo.com.cn/nsjc-charge',
+    // url: 'http://1p885086k1.iok.la/nsjc-charge',
+    // url: 'http://192.168.0.31:8085/nsjc-charge',
     imgUrl: 'https://nsjcy.hugeinfo.com.cn/nsjc-charge',
-    // url: 'http://nsjc.vaiwan.com/nsjc-charge',
+    url: 'http://nsjc.vaiwan.com/nsjc-charge',
     // imgUrl: 'http://nsjc.vaiwan.com/nsjc-charge'
   },
   // 过滤数组
   where: (collection, source) => {
     var sourceKeys = Object.keys(source);
-    return collection.filter(function(obj) {
+    return collection.filter(function (obj) {
       for (var i = 0; i < sourceKeys.length; i++) {
         if (!obj.hasOwnProperty(sourceKeys[i]) || obj[sourceKeys[i]] !== source[sourceKeys[i]]) {
           return false;
@@ -30,7 +31,7 @@
   },
 
   //控制是否能够编辑
-  judgeDisable: function(status) {
+  judgeDisable: function (status) {
     if (status == null || status == 0 || status == 4) {
       return false; //可以
     } else {
@@ -39,14 +40,14 @@
   },
 
   //提示弹窗
-  showModal: function(warn) {
+  showModal: function (warn) {
     wx.showModal({
       title: '提示',
       content: warn
     })
   },
   //添加图片
-  joinPicture: function(e, these, associateTypeId, attId) {
+  joinPicture: function (e, these, associateTypeId, attId) {
     var th = this;
     var index = e.currentTarget.dataset.index;
     var associateTypeId = e.currentTarget.dataset.associatetypeid || associateTypeId;
@@ -74,7 +75,7 @@
   },
 
   // 上传视频
-  joinVideo: function(e, these, associateTypeId, attId) {
+  joinVideo: function (e, these, associateTypeId, attId) {
     var th = this;
     var index = e.currentTarget.dataset.index;
     var associateTypeId = e.currentTarget.dataset.associatetypeid || associateTypeId;
@@ -91,7 +92,7 @@
     })
   },
   //上传文件
-  upload: function(these, path, associateTypeId, way, id) {
+  upload: function (these, path, associateTypeId, way, id) {
     console.log(these)
     console.log(path)
     console.log(associateTypeId)
@@ -121,11 +122,15 @@
         associateTypeId: associateTypeId,
         batch
       },
-      success: function(res) {
+      success: function (res) {
         console.log(res)
         var evalList = these.data.evalList;
         var evalListType = 'evalList' + associateTypeId;
         var data = JSON.parse(res.data)
+        console.log(data)
+        console.log('path', path)
+        console.log('evalList', evalList)
+        console.log('associateTypeId', associateTypeId)
         these.setData({
           evalList: {
             ...evalList,
@@ -136,7 +141,7 @@
           },
         })
       },
-      complete: function() {
+      complete: function () {
         wx.hideToast(); //隐藏Toast
       }
     })
@@ -144,7 +149,7 @@
   },
 
   //删除图片
-  clearImg: function(e, these) {
+  clearImg: function (e, these) {
     var id = e.currentTarget.id;
     var index = e.currentTarget.dataset.index;
     var associateTypeId = e.currentTarget.dataset.associatetypeid;
@@ -157,12 +162,12 @@
       }),
       wx.request({
         url: this.globalData.url + '/api/v1/attachment/delete/' + id,
-        success: function(res) {
+        success: function (res) {
           if (res.data.code == 0) {
             console.log('删除成功!')
           }
         },
-        complete: function() {
+        complete: function () {
           wx.hideToast(); //隐藏Toast
         }
       })
@@ -176,7 +181,7 @@
   },
 
   // 预览图片
-  previewImage: function(e) {
+  previewImage: function (e) {
     wx.previewImage({
       current: e.currentTarget.dataset.src, // 当前显示图片的http链接
       urls: [e.currentTarget.dataset.src] // 需要预览的图片http链接列表
@@ -184,7 +189,7 @@
   },
 
   //转换时间戳
-  formatDate: function(ts) {
+  formatDate: function (ts) {
     var now = new Date(ts);
     var year = now.getFullYear();
     var month = now.getMonth() + 1;
@@ -195,15 +200,27 @@
     return year + "-" + month + "-" + date + " " + hour + ":" + minute;
   },
 
+  //转换时间戳
+  formatDateday: function (ts) {
+    var now = new Date(ts);
+    var year = now.getFullYear();
+    var month = now.getMonth() + 1;
+    var date = now.getDate();
+    var hour = now.getHours() < 10 ? '0' + now.getHours() : now.getHours();
+    var minute = now.getMinutes() < 10 ? '0' + now.getMinutes() : now.getMinutes();
+    var second = now.getSeconds();
+    return year + "-" + month + "-" + date;
+  },
+
   // 页面正在开发中
-  developIng: function() {
+  developIng: function () {
     wx.navigateTo({
       url: '../developIng/developIng',
     })
   },
 
   // 判断时间段
-  period: function() {
+  period: function () {
     var now = new Date(),
       hour = now.getHours(),
       word = '';;
@@ -228,7 +245,7 @@
   },
 
   // 根据身份证获取生日,性别,年龄
-  IdCard: function(UUserCard, num) {
+  IdCard: function (UUserCard, num) {
     if (num == 1) {
       //获取出生日期
       var birth = UUserCard.substring(6, 10) + "-" + UUserCard.substring(10, 12) + "-" + UUserCard.substring(12, 14);
diff --git a/SunshineLnsMinApp/app.json b/SunshineLnsMinApp/app.json
index 3635482..0a82747 100644
--- a/SunshineLnsMinApp/app.json
+++ b/SunshineLnsMinApp/app.json
@@ -91,6 +91,9 @@
     "pages/zscqjb/zscqjb",
     "pages/zscqdxal/zscqdxal",
     "pages/zscqdxalInfo/zscqdxalInfo",
+    "pages/pfyy/pfyy",
+    "pages/rzcx/rzcx",
+    "pages/rzcxList/rzcxList",
     "pages/createSub/createSub"
   ],
   "networkTimeout": {
diff --git a/SunshineLnsMinApp/pages/createSub/createSub.js b/SunshineLnsMinApp/pages/createSub/createSub.js
index fbc5ba0..0323bca 100644
--- a/SunshineLnsMinApp/pages/createSub/createSub.js
+++ b/SunshineLnsMinApp/pages/createSub/createSub.js
@@ -55,7 +55,7 @@
             if (res.confirm) {
               wx.switchTab({
                 url: '/pages/creat/creat',
-                success: function(e) {
+                success: function (e) {
                   var page = getCurrentPages().pop();
                   if (page == undefined || page == null) return;
                   page.onLoad();
@@ -75,8 +75,23 @@
   /**
    * 生命周期函数--监听页面加载
    */
-  onLoad: function(options) {
+  onLoad: function (options) {
     var _m = "question";
+
+    var that = this;
+    wx.request({
+      url: app.globalData.url + '/api/activity/finds',
+      success: function (res) {
+        if (res.data.code == 0) {
+          console.log(res)
+        } else {
+          wx.showModal({
+            title: '提示',
+            content: "请求失败!"
+          })
+        }
+      }
+    })
     this.setData({
       [_m]: {
         "paper": {
@@ -127,7 +142,7 @@
     });
   },
 
-  onChange: function(e) {
+  onChange: function (e) {
     var index = e.currentTarget.dataset['index'];
     const {
       value
diff --git a/SunshineLnsMinApp/pages/createSubList/createSubList.js b/SunshineLnsMinApp/pages/createSubList/createSubList.js
new file mode 100644
index 0000000..ebb07f0
--- /dev/null
+++ b/SunshineLnsMinApp/pages/createSubList/createSubList.js
@@ -0,0 +1,162 @@
+// pages/createSub/createSub.js
+const app = getApp();
+const $v = app.globalData.createInfo;
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    question: {},
+    confirm: true
+  },
+  // 去单选页面
+  toRadio(e) {
+    var types = e.currentTarget.dataset.type;
+    wx.navigateTo({
+      url: '/pages/radio/radio?type=' + types,
+    })
+  },
+  //去编辑页面
+  edit(e) {
+    var index = e.currentTarget.dataset.index;
+    wx.navigateTo({
+      url: '/pages/radio/radio?index=' + index,
+    })
+  },
+  // 提交信息
+  submit() {
+    if ($v.psqList.length == 0) {
+      wx.showToast({
+        title: '你还没有创建题目',
+        icon: "none",
+        duration: 800
+      });
+      return;
+    }
+    this.setData({
+      confirm: false
+    })
+  },
+  // 发布信息
+  publish() {
+    app.res({
+      url: "psq/save",
+      method: "POST",
+      data: $v,
+      callback: res => {
+        $v.paper = {};
+        $v.psqList = [];
+        wx.showModal({
+          title: '提示',
+          content: '发布成功,跳转新建问卷',
+          showCancel: false,
+          success: res => {
+            if (res.confirm) {
+              wx.switchTab({
+                url: '/pages/creat/creat',
+                success: function (e) {
+                  var page = getCurrentPages().pop();
+                  if (page == undefined || page == null) return;
+                  page.onLoad();
+                }
+              })
+            }
+          }
+        })
+      }
+    })
+  },
+  returnEdit() {
+    this.setData({
+      confirm: true
+    })
+  },
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    var _m = "question";
+
+    var that = this;
+    wx.request({
+      url: app.globalData.url + '/api/question/examination',
+      success: function (res) {
+        if (res.data.code == 0) {
+          console.log(res)
+        } else {
+          wx.showModal({
+            title: '提示',
+            content: "请求失败!"
+          })
+        }
+      }
+    })
+    this.setData({
+      [_m]: {
+        "paper": {
+          "title": "11",
+          "des": "111"
+        },
+        "psqList": [{
+          "isMust": 1,
+          "type": 1,
+          "question": "111",
+          "answerslist": [{
+            "answer": "11"
+          }, {
+            "answer": "111"
+          }, {
+            "answer": "11"
+          }, {
+            "answer": "111"
+          }],
+          'value': []
+        }, {
+          "isMust": 1,
+          "type": 1,
+          "question": "11111",
+          "answerslist": [{
+            "answer": "111"
+          }, {
+            "answer": "111"
+          }],
+          value: []
+        }, {
+          "isMust": 1,
+          "type": 0,
+          "question": "11111"
+        }, {
+          "isMust": 0,
+          "type": 1,
+          "question": "wqwqw",
+          "answerslist": [{
+            "answer": "qw"
+          }, {
+            "answer": "wqw"
+          }, {
+            "answer": "wqw"
+          }]
+        }]
+      }
+    });
+  },
+
+  onChange: function (e) {
+    var index = e.currentTarget.dataset['index'];
+    const {
+      value
+    } = e.detail;
+    console.log('checkbox', e, '索引', index);
+    const data = this.data.question.psqList[index].value || [];
+    const idx = data.indexOf(value)
+    const current = idx === -1 ? [...data, value] : data.filter((n) => n !== value)
+    console.log('current', current);
+    this.data.question.psqList[index].value = current
+    this.setData({
+      question: this.data.question
+    })
+
+  }
+
+})
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/createSubList/createSubList.json b/SunshineLnsMinApp/pages/createSubList/createSubList.json
new file mode 100644
index 0000000..d7e2107
--- /dev/null
+++ b/SunshineLnsMinApp/pages/createSubList/createSubList.json
@@ -0,0 +1,7 @@
+{
+  "navigationBarTitleText": "问卷",
+  "usingComponents": {
+    "wux-checkbox-group": "../../templeteDist/wuxDist/checkbox-group/index",
+    "wux-checkbox": "../../templeteDist/wuxDist/checkbox/index"
+  }
+}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/createSubList/createSubList.wxml b/SunshineLnsMinApp/pages/createSubList/createSubList.wxml
new file mode 100644
index 0000000..60fb792
--- /dev/null
+++ b/SunshineLnsMinApp/pages/createSubList/createSubList.wxml
@@ -0,0 +1,49 @@
+<!--pages/createSub/createSub.wxml-->
+<!--pages/detail/detail.wxml-->
+<view class="container">
+  <view class="title">{{question.paper.title}}</view>
+  <view class="des">{{question.paper.des}}</view>
+  <view class="question" wx:for="{{question.psqList}}" wx:key="{{index}}">
+    <view class="questionB">
+      <view class="questionT">
+        <text wx:if="{{item.isMust == 1}}">*</text> {{index+1}}、{{item.question}}
+        <view wx:if="{{confirm}}" catchtap="edit" data-index="{{index}}">
+          <!-- <icon class="iconfont icon-icon_edit"></icon> 
+          修改 -->
+        </view>
+      </view>
+      <view class="questionA">
+        <!-- <radio-group class="radio-group" 
+        wx:if="{{item.type == 1}}">
+          <label class="radio"  wx:for="{{item.answerslist}}" wx:key="{{index}}">
+            <radio value="{{item.id}}"/>{{item.answer}}
+          </label>
+        </radio-group> -->
+        <wux-checkbox-group name="a" data-index="{{index}}" value="{{ item.value || [] }}" bind:change="onChange" wx:if="{{item.type == 1}}">
+          <wux-checkbox color="positive" title="{{item.answer}}" value="{{item.answer}}" wx:for="{{item.answerslist}}" wx:key="{{index}}">
+            {{item.answer}}
+          </wux-checkbox>
+        </wux-checkbox-group>
+
+        <view class="textarea" wx:if="{{item.type == 0}}">
+          <textarea placeholder="请输入回答" />
+        </view>
+      </view>
+    </view>
+  </view>
+  <view class="question" wx:if="{{confirm}}">
+    <view class="selectType">
+      <view class="toRadio" data-type="1" catchtap="toRadio">
+        <icon class="iconfont icon-guanbi"></icon>
+        单选题
+      </view>
+      <view class="toFillBlack" data-type="0" catchtap="toRadio">
+        <icon class="iconfont icon-combinedshapecopy2"></icon>
+        填空题
+      </view>
+    </view>
+  </view>
+  <button class="btn" catchtap='submit' wx:if="{{confirm}}">提交</button>
+  <button class="btn" catchtap='publish' wx:if="{{!confirm}}">确认发布</button>
+  <button class="btn" catchtap='returnEdit' wx:if="{{!confirm}}">返回修改</button>
+</view>
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/createSubList/createSubList.wxss b/SunshineLnsMinApp/pages/createSubList/createSubList.wxss
new file mode 100644
index 0000000..1830c58
--- /dev/null
+++ b/SunshineLnsMinApp/pages/createSubList/createSubList.wxss
@@ -0,0 +1,121 @@
+/* pages/createSub/createSub.wxss */
+
+page {
+  background-color: #eaf3fb;
+  width: 100%;
+  height: 100%;
+}
+
+.container {
+  padding: 0 20rpx;
+  background-color: #eaf3fb;
+  color: #343434;
+  overflow: auto;
+}
+
+.title {
+  text-align: center;
+  font-size: 32rpx;
+  padding: 30rpx 0 20rpx;
+}
+
+.des {
+  padding: 0 30rpx;
+  line-height: 50rpx;
+  font-size: 28rpx;
+  margin-bottom: 24rpx;
+}
+
+.question {
+  width: 100%;
+  padding: 0 20rpx;
+}
+
+.questionB {
+  padding: 0 20rpx;
+  border-radius: 5px;
+  background-color: white;
+  margin-top: 24rpx;
+}
+
+.questionB .questionT {
+  padding: 20rpx 0;
+  border-bottom: 1px solid #58a6f6;
+  font-size: 32rpx;
+  color: #58a6f6;
+}
+
+.questionA radio-group {
+  display: block;
+}
+
+.questionT text {
+  color: red;
+}
+
+.questionT view {
+  float: right;
+  font-size: 28rpx;
+  margin-top: -5px;
+}
+
+.radio {
+  display: block;
+  font-size: 30rpx;
+  padding: 20rpx;
+  border-bottom: 1rpx dashed #dadada;
+}
+
+.radio:last-child {
+  border-bottom: none;
+}
+
+.radio radio {
+  margin-right: 20rpx;
+}
+
+.textarea {
+  padding: 24rpx;
+}
+
+.questionA textarea {
+  width: 100%;
+  height: 160rpx;
+  padding: 20rpx;
+  box-sizing: border-box;
+  font-size: 30rpx;
+  border: 1rpx solid #dadada;
+  border-radius: 5px;
+}
+
+.selectType {
+  padding: 20rpx 100rpx;
+  border-radius: 5px;
+  background-color: white;
+  margin-top: 24rpx;
+  display: flex;
+  justify-content: space-between;
+  font-size: 32rpx;
+}
+
+.selectType icon {
+  font-size: 40rpx;
+  color: #58a6f6;
+}
+
+.toRadio icon {
+  position: relative;
+  font-size: 45rpx;
+  top: 5rpx;
+}
+
+.btn {
+  width: 80%;
+  height: 40px;
+  background-color: #58a6f6;
+  border-radius: 40px;
+  line-height: 40px;
+  color: white;
+  margin: 24rpx auto;
+  font-size: 32rpx;
+}
diff --git a/SunshineLnsMinApp/pages/index/index.wxml b/SunshineLnsMinApp/pages/index/index.wxml
index 10c9d97..3d689b4 100644
--- a/SunshineLnsMinApp/pages/index/index.wxml
+++ b/SunshineLnsMinApp/pages/index/index.wxml
@@ -329,11 +329,13 @@
             营商环境
           </view>
         </view>
-        <view class="bg-img" data-str="createSub" data-id="9" bindtap='clinkFunction' style="background-image: url('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1577104674828&di=1ad5819ce06281fb5090a4038980917e&imgtype=0&src=http%3A%2F%2Fimage.sike.news.cn%2Fuploads%2F2019%2F05%2F2019-05-2451.jpg');margin: 6px;height: 78px;flex: 1; line-height: 78px;">
+        <view class="bg-img" style="margin: 6px;height: 78px;flex: 1; line-height: 78px;">
+        </view>
+        <!-- <view class="bg-img" data-str="createSub" data-id="9" bindtap='clinkFunction' style="background-image: url('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1577104674828&di=1ad5819ce06281fb5090a4038980917e&imgtype=0&src=http%3A%2F%2Fimage.sike.news.cn%2Fuploads%2F2019%2F05%2F2019-05-2451.jpg');margin: 6px;height: 78px;flex: 1; line-height: 78px;">
           <view class="bg-shadeTop">
             问卷调查
           </view>
-        </view>
+        </view> -->
       </view>
 
     </view>
diff --git a/SunshineLnsMinApp/pages/law2Publicity/law2Publicity.js b/SunshineLnsMinApp/pages/law2Publicity/law2Publicity.js
index d34d9e0..e520aea 100644
--- a/SunshineLnsMinApp/pages/law2Publicity/law2Publicity.js
+++ b/SunshineLnsMinApp/pages/law2Publicity/law2Publicity.js
@@ -6,6 +6,7 @@
    * 页面的初始数据
    */
   data: {
+    user: app.globalData.imgUrl + '/image/user.svg',
     dataSet: [],
     isHideLoadMore: true, //loading样式
     isHideMorebtn: true, //更多按钮样式
@@ -16,24 +17,25 @@
   /**
    * 生命周期函数--监听页面加载
    */
-  onLoad: function(options) {
+  onLoad: function (options) {
     this.setData({
       isHideLoadMore: false
     }, this.showList(options.id))
   },
 
-  showList: function(id) {
+  showList: function (id) {
     var that = this;
     // d46ee05998ce48f893a63623cbde6875
     wx.request({
-      url: app.globalData.url + '/api/article/legalServiceQuery?page=1&size=' + that.data.size + '&ownerId=' +id,
-      success: function(res) {
+      url: app.globalData.url + '/api/article/publicMsgQuery?page=1&size=' + that.data.size + '&flag=法律宣传',
+      success: function (res) {
         console.log(res)
         if (res.data.code == 0) {
-          (res.data.data.content).forEach(e => {
+          (res.data.data.units).forEach(e => {
             (e.createTime) = app.formatDate(e.createTime)
           })
-          var dataSet = res.data.data.content;
+          var dataSet = res.data.data.units;
+          console.log(dataSet)
           if (res.data.data.totalElements < that.data.size) {
             // 到底了,没数据加载
             that.setData({
@@ -56,7 +58,7 @@
           })
         }
       },
-      complete: function() {
+      complete: function () {
         that.setData({
           isHideLoadMore: true
         })
@@ -65,7 +67,7 @@
   },
 
   // 跳转详情
-  link: function(e) {
+  link: function (e) {
     var id = e.currentTarget.dataset.id;
     console.log(e.currentTarget.dataset.id);
     wx.navigateTo({
@@ -73,22 +75,15 @@
     })
   },
 
-  /**
-   * 页面相关事件处理函数--监听用户下拉动作
-   */
-  onPullDownRefresh: function() {
-
-  },
-
-  /**
-   * 页面上拉触底事件的处理函数
-   */
-  onReachBottom: function() {
-
+  folder: function (event) {
+    var title = event.currentTarget.dataset['title'];
+    wx.navigateTo({
+      url: '../law2Publicitylist/law2Publicitylist?title=' + title,
+    })
   },
 
   // 加载更多
-  getMore: function() {
+  getMore: function () {
     // 有加载更多按钮
     if (!this.data.isHideMorebtn) {
       this.setData({
diff --git a/SunshineLnsMinApp/pages/law2Publicity/law2Publicity.wxml b/SunshineLnsMinApp/pages/law2Publicity/law2Publicity.wxml
index 5e24715..be4743d 100644
--- a/SunshineLnsMinApp/pages/law2Publicity/law2Publicity.wxml
+++ b/SunshineLnsMinApp/pages/law2Publicity/law2Publicity.wxml
@@ -1,27 +1,13 @@
 <!--lawPublicity.wxml-->
-<view class="lawPublicity-list">
-  <view class="lawPublicity-item" wx:for="{{dataSet}}" wx:key="{{item.id}}"> 
-    <view class="content-left">
-      <view class="headLineTitle" data-Id="{{item.id}}" bindtap="link">
-        {{item.title}}
-      </view>
-      <view class="headLineInfo">
-        <view class="info-source">{{item.createTime}}</view>
-        <view class="info-viewer">{{item.readCount}}人阅读</view>
-      </view>
-    </view>
-    <view class="content-right" data-Id="{{item.id}}" bindtap="link">
-    <image src="{{item.coverUrl}}"></image>
-    </view>
-  </view>
-</view>
-<view class="weui-loadmore" hidden="{{isHideMorebtn}}">
-  <view class="weui-loadmore__tips" bindtap='getMore'>点击加载更多</view>
-</view>
-<view class="weui-loadmore" hidden="{{isHideLoadMore}}">
-  <view class="weui-loading"></view>
-  <view class="weui-loadmore__tips">正在加载</view>
-</view>
-<view class="weui-loadmore" hidden="{{isHideEnd}}">
-  <view class="weui-loadmore__tips">------------我是有底线的------------</view>
-</view>
\ No newline at end of file
+<!-- <div class="guide-all-nav">
+	<span></span>
+	<span>全部指南</span>
+</div> -->
+<div class="guide-all-list" wx:for="{{dataSet}}" wx:id="{{item.id}}" data-title="{{item.channelName}}" bindtap='folder'>
+	<div class="guide-all-list-top">{{item.channelName}}
+		<span>
+			<image class="index-pane-icon " src="{{user}} " />
+		</span>
+	</div>
+
+</div>
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/law2Publicity/law2Publicity.wxss b/SunshineLnsMinApp/pages/law2Publicity/law2Publicity.wxss
index e3604d5..253384b 100644
--- a/SunshineLnsMinApp/pages/law2Publicity/law2Publicity.wxss
+++ b/SunshineLnsMinApp/pages/law2Publicity/law2Publicity.wxss
@@ -1,47 +1,158 @@
 /* lawPublicity.wxss */
 
-.lawPublicity-item {
-  height: 148rpx;
+.guide-nav-pane {
   display: flex;
-  flex-direction: row;
-  color: rgba(51, 51, 51, 1);
-  text-align: left;
-  font-family: PingFangSC-Regular;
-  padding: 24rpx 24rpx 0 24rpx;
+  align-items: center;
 }
 
-.content-left {
-  width: 416rpx;
+.guide-nav-pane-item {
+  flex: auto;
+  display: flex;
+  min-width: 38px;
+  flex-flow: column nowrap;
+  justify-content: center;
+  align-items: center;
+  margin: 8px 0;
 }
 
-.content-right {
-  flex: 1;
-  margin-left: 50rpx;
-  background: #ccc;
-  width: 100%;
-  height: 100%;
-}
-.content-right image{
-  width: 100%;
-  height: 100%;
+.guide-nav-pane-item-icon {
+  width: 6vh;
+  height: 6vh;
 }
 
-.headLineTitle {
-  height: 88rpx;
+.guide-nav-pane-item-title {
+  font-size: 14px;
+}
+
+.border-left {
+  border-left: 1px solid #f2f2f2;
+}
+
+.guide-often {
+  display: flex;
+  padding:2vh 0 0 2vh;
+  flex-direction: column;
+  box-shadow: 0px 6px 6px 0 rgba(80, 119, 170, 0.06);
+}
+
+.guide-often-nav {
+  flex: auto;
+  padding-bottom: 2vh;
+}
+
+.guide-all-nav {
+  flex: auto;
+  padding: 2vh;
+  border-bottom: 1px solid #f2f2f2;
+}
+
+.guide-often-nav span:nth-child(1) {
+  border-left: 3px solid #2195ff;
+}
+
+.guide-often-nav span:nth-child(2) {
+  padding-left: 1vh;
+  font-size: 18px;
+  font-weight: bold;
+}
+
+.guide-all {
+  display: flex;
+  flex-direction: column;
+  box-shadow: 0px 6px 6px 0 rgba(80, 119, 170, 0.06);
+}
+
+.guide-all-nav span:nth-child(1) {
+  border-left: 3px solid #2195ff;
+}
+
+.guide-all-nav span:nth-child(2) {
+  padding-left: 1vh;
+  font-size: 18px;
+  font-weight: bold;
+}
+
+.guide-often-icon {
+  display: flex;
+}
+
+.guide-often-img {
+  height: 18vh;
+}
+
+.guide-all-list {
+  display: flex;
+  flex-direction: column;
+  padding: 2vh;
+  border-bottom: 1px solid #f2f2f2;
+}
+
+.guide-all-list-top {
   font-size: 16px;
-  line-break: 44rpx;
-  color: rgba(51, 51, 51, 1);
-  margin-bottom: 26rpx;
+  color: #333;
 }
 
-.headLineInfo {
+.guide-all-list-bottom {
+  font-size: 14px;
+  color: #999;
   display: flex;
-  font-size: 12px;
-  color: rgba(153, 153, 153, 1);
+  margin-top: 1vh;
 }
 
-.info-source{
-  margin-right: 20rpx;
+.guide-all-list-left {
+  margin-right: auto;
+}
+
+.guide-all-list-right {
+  width: 3vh;
+  height: 3vh;
+}
+.index-pane-icon {
+  width: 16px;
+  height: 16px;
+  float:right;
+}
+
+.search{
+  width: 98%;
+}
+.search_arr {
+  border: 1px solid #d0d0d0;
+  border-radius: 10rpx;
+  margin-left: 20rpx;
+}
+.search_arr input{
+  margin-left: 60rpx;
+  height: 60rpx;
+  border-radius: 5px;
+  font-size: 14px;
+}
+.bc_text {
+  line-height: 68rpx;
+  height: 68rpx;
+  margin-top: 34rpx;
+}
+ 
+.sousuo {
+  margin-left: 15rpx;
+  width: 15%;
+  line-height: 150%;
+  text-align: center;
+  border: 1px solid #d0d0d0;
+  border-radius: 10rpx;
+}
+.page_row{
+  display: flex;
+  flex-direction: row
+}
+.searchcion {
+  margin: 10rpx 10rpx 10rpx 10rpx;
+  position: absolute;
+  left:25rpx;
+  z-index: 2;
+  width: 20px;
+  height: 20px;
+  text-align: center;
 }
 
 
diff --git a/SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.js b/SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.js
new file mode 100644
index 0000000..dcdf684
--- /dev/null
+++ b/SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.js
@@ -0,0 +1,64 @@
+//index.js
+//获取应用实例
+const app = getApp()
+
+Page({
+  data: {
+    user: app.globalData.imgUrl + '/image/user.svg',
+    dataSet: [],
+    title: '',
+    content: '------加载中------',
+    size: 10,
+    hasMoreData: true,
+  },
+  onLoad: function(option) {
+    this.setData({
+      title: option.title
+    }, this.showList(option.title))
+  },
+
+  showList: function (title) {
+    var that = this;
+    wx.request({
+      url: app.globalData.url + '/api/article/publicMsgQuery?page=1&size=' + that.data.size + '&flag=' +title,
+      success: function(res) {
+        console.log(res)
+        if (res.data.code == 0) {
+          that.setData({
+            dataType: res.data.data.units
+          })
+          if (res.data.data.result.totalElements < that.data.size) {
+            that.setData({
+              dataSet: res.data.data.result.content,
+              hasMoreData: false,
+              content: '------我是有底线的------'
+            })
+          } else {
+            that.setData({
+              dataSet: res.data.data.result.content,
+              hasMoreData: true,
+              content: '------加载更多------',
+              size: that.data.size + 10
+            })
+          }
+        } else {
+          wx.showModal({
+            title: '提示',
+            content: "请求失败!"
+          })
+        }
+
+      }
+    })
+  },
+
+  link: function(event) {
+    // 跳转详情页面
+    var id = event.currentTarget.dataset['id'];
+    var flag = '办事指南详情';
+    wx.navigateTo({
+      url: '../publicMsgDetails/publicMsgDetails?id=' + id + '&flag=' + flag,
+    })
+  }
+
+})
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.json b/SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.json
new file mode 100644
index 0000000..4477a99
--- /dev/null
+++ b/SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.json
@@ -0,0 +1,6 @@
+{
+  "navigationBarTitleText": "自贸区法律服务",
+  "backgroundTextStyle": "light",
+  "navigationBarBackgroundColor": "#fff",
+  "navigationBarTextStyle": "black"
+}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.wxml b/SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.wxml
new file mode 100644
index 0000000..f944003
--- /dev/null
+++ b/SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.wxml
@@ -0,0 +1,19 @@
+<div class="guide-main">
+
+  <div class="guide-all">
+    <div class="guide-all-nav">
+      <span></span>
+      <span>{{title}}({{dataSet.length}})</span>
+    </div>
+    <div class="guide-all-list" wx:for="{{dataSet}}" wx:key="{{item.id}}" data-Id="{{item.id}}" bindtap='link'>
+      <div class="guide-all-list-top">{{item.title}}
+        <span>
+          <image class="index-pane-icon " src="{{user}} " />
+        </span>
+      </div>
+    </div>
+
+  </div>
+
+  <div class="load">------{{content}}------</div>
+</div>
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.wxss b/SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.wxss
new file mode 100644
index 0000000..86124e5
--- /dev/null
+++ b/SunshineLnsMinApp/pages/law2Publicitylist/law2Publicitylist.wxss
@@ -0,0 +1,112 @@
+.guide-nav-pane {
+  display: flex;
+  align-items: center;
+}
+
+.guide-nav-pane-item {
+  flex: auto;
+  display: flex;
+  min-width: 38px;
+  flex-flow: column nowrap;
+  justify-content: center;
+  align-items: center;
+  margin: 8px 0;
+}
+
+.guide-nav-pane-item-icon {
+  width: 6vh;
+  height: 6vh;
+}
+
+.guide-nav-pane-item-title {
+  font-size: 14px;
+}
+
+.border-left {
+  border-left: 1px solid #f2f2f2;
+}
+
+.guide-often {
+  display: flex;
+  padding:2vh 0 0 2vh;
+  flex-direction: column;
+  box-shadow: 0px 6px 6px 0 rgba(80, 119, 170, 0.06);
+}
+
+.guide-often-nav {
+  flex: auto;
+  padding-bottom: 2vh;
+}
+
+.guide-all-nav {
+  flex: auto;
+  padding: 2vh;
+  border-bottom: 1px solid #f2f2f2;
+}
+
+.guide-often-nav span:nth-child(1) {
+  border-left: 3px solid #2195ff;
+}
+
+.guide-often-nav span:nth-child(2) {
+  padding-left: 1vh;
+  font-size: 18px;
+  font-weight: bold;
+}
+
+.guide-all {
+  display: flex;
+  flex-direction: column;
+  box-shadow: 0px 6px 6px 0 rgba(80, 119, 170, 0.06);
+}
+
+.guide-all-nav span:nth-child(1) {
+  border-left: 3px solid #2195ff;
+}
+
+.guide-all-nav span:nth-child(2) {
+  padding-left: 1vh;
+  font-size: 18px;
+  font-weight: bold;
+}
+
+.guide-often-icon {
+  display: flex;
+}
+
+.guide-often-img {
+  height: 18vh;
+}
+
+.guide-all-list {
+  display: flex;
+  flex-direction: column;
+  padding: 2vh;
+  border-bottom: 1px solid #f2f2f2;
+}
+
+.guide-all-list-top {
+  font-size: 16px;
+  color: #333;
+}
+
+.guide-all-list-bottom {
+  font-size: 14px;
+  color: #999;
+  display: flex;
+  margin-top: 1vh;
+}
+
+.guide-all-list-left {
+  margin-right: auto;
+}
+
+.guide-all-list-right {
+  width: 3vh;
+  height: 3vh;
+}
+.index-pane-icon {
+  width: 16px;
+  height: 16px;
+  float:right;
+}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/me/me.js b/SunshineLnsMinApp/pages/me/me.js
index c53e3d8..3b5f824 100644
--- a/SunshineLnsMinApp/pages/me/me.js
+++ b/SunshineLnsMinApp/pages/me/me.js
@@ -46,6 +46,12 @@
     })
   },
 
+  rzcxList: function() {
+    wx.navigateTo({
+      url: '../rzcxList/rzcxList',
+    })
+  },
+
   onLoad: function() {
     this.notification();
   },
diff --git a/SunshineLnsMinApp/pages/me/me.wxml b/SunshineLnsMinApp/pages/me/me.wxml
index 3e081a0..963157e 100644
--- a/SunshineLnsMinApp/pages/me/me.wxml
+++ b/SunshineLnsMinApp/pages/me/me.wxml
@@ -5,9 +5,7 @@
 			<open-data class="me-item-icon" type="userAvatarUrl"></open-data>
 		</view>
 		<div class="me-item-name">
-
 			<open-data class="me-item-name-top" type="userNickName"></open-data>
-
 			<div class="me-item-name-bottom">欢迎你</div>
 		</div>
 		<image class="me-item-logo" src="{{logo}}" />
@@ -42,6 +40,16 @@
 			<image class="me-business-right-icon" src="{{user}}" />
 		</div>
 
+		<div class="me-business-nav" bindtap="rzcxList">
+			<image class="me-business-icon" src="{{xxtx}}" />
+			<div class="me-business-title">入职查询</div>
+			<block wx:if="{{notRead > 0}}">
+				<div class="me-business-info">{{notRead}}</div>
+			</block>
+
+			<image class="me-business-right-icon" src="{{user}}" />
+		</div>
+
 		<div class="me-business-nav" bindtap="wdjb">
 			<image class="me-business-icon" src="{{xxtx}}" />
 			<div class="me-business-title">我的举报</div>
diff --git a/SunshineLnsMinApp/pages/messageNotification/messageNotification.js b/SunshineLnsMinApp/pages/messageNotification/messageNotification.js
index 59ddfa2..c5a814e 100644
--- a/SunshineLnsMinApp/pages/messageNotification/messageNotification.js
+++ b/SunshineLnsMinApp/pages/messageNotification/messageNotification.js
@@ -6,7 +6,7 @@
    * 页面的初始数据
    */
   data: {
-    loading: app.globalData.imgUrl +'/image/loading.svg',
+    loading: app.globalData.imgUrl + '/image/loading.svg',
     navbar: ['全部', '未回复', '已回复'],
     currentTab: 0,
     size: 10,
@@ -18,7 +18,7 @@
     dataSet: []
   },
 
-  navbarTap: function(e) {
+  navbarTap: function (e) {
     this.setData({
       currentTab: e.currentTarget.dataset.idx
     })
@@ -26,7 +26,7 @@
 
   },
 
-  showList: function(tab) {
+  showList: function (tab) {
     var userinfo = wx.getStorageSync("user");
     var that = this;
     var id = userinfo.id
@@ -48,16 +48,16 @@
     }
     wx.request({
       url: app.globalData.url + '/api/businessAggr/draftQuery?page=1&size=' + that.data[sizeQty] + '&userId=' + id + '&flag=message' + str,
-      success: function(res) {
+      success: function (res) {
         if (res.data.code == 0) {
           (res.data.data.content).forEach(e => {
             (e.createTime) = app.formatDate(e.createTime)
             switch (e.businessType) {
               case '扫黑除恶':
-                e.iconSrc = app.globalData.imgUrl +'/image/businessManage/saoheichue_b.png';
+                e.iconSrc = app.globalData.imgUrl + '/image/businessManage/saoheichue_b.png';
                 break;
               case '公益随手拍':
-                e.iconSrc = app.globalData.imgUrl +'/image/businessManage/suishoupai_b.png';
+                e.iconSrc = app.globalData.imgUrl + '/image/businessManage/suishoupai_b.png';
                 break;
               case '联络站':
                 if (e.stationType == 4) {
@@ -80,7 +80,7 @@
                 e.iconSrc = app.globalData.imgUrl + '/image/icon_lianluo.svg';
                 break;
               case '投诉建议':
-                e.iconSrc = app.globalData.imgUrl +'/image/businessManage/icon_tousujianyi@2x.png'
+                e.iconSrc = app.globalData.imgUrl + '/image/businessManage/icon_tousujianyi@2x.png'
             }
 
 
@@ -109,7 +109,7 @@
     })
   },
 
-  businessSchedule: function(event) {
+  businessSchedule: function (event) {
     var id = event.currentTarget.id;
     var businessType = this.data.dataSet[id].businessType;
     var businessId = this.data.dataSet[id].businessId;
@@ -128,9 +128,13 @@
       wx.navigateTo({
         url: '../complaintAdvice/complaintAdvice?id=' + businessId,
       })
-    } else if (businessType1 == "联络站") {
+    } else if (businessType == "联络站") {
       wx.navigateTo({
         url: '../junctionStation/junctionStation?id=' + businessId + '&flag=' + flag,
+      })
+    } else if (businessType == "普法预约") {
+      wx.navigateTo({
+        url: '../pfyy/pfyy?id=' + businessId + '&disabled=' + true,
       })
     } else {
       wx.showModal({
@@ -140,14 +144,14 @@
     }
   },
 
-  onLoad: function() {
+  onLoad: function () {
     this.showList(0)
   },
 
   /**
    * 页面上拉触底事件的处理函数
    */
-  onReachBottom: function() {
+  onReachBottom: function () {
     if (this.data.hasMoreData) {
       this.showList(this.data.currentTab)
       this.setData({
diff --git a/SunshineLnsMinApp/pages/pfyy/pfyy.js b/SunshineLnsMinApp/pages/pfyy/pfyy.js
new file mode 100644
index 0000000..d859116
--- /dev/null
+++ b/SunshineLnsMinApp/pages/pfyy/pfyy.js
@@ -0,0 +1,120 @@
+// pages/pfyy/pfyy.js
+
+const app = getApp();
+var Validator = require("../../utils/validate.tools.js");
+const verify = Validator.Validator;
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    disabled: false,
+    id: '',
+    picType: '',
+    evalList: {},
+    picturesInfo: {}
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    var that = this;
+    console.log(options)
+    let id = options.id
+    let disabled = options.disabled
+    var userinfo = wx.getStorageSync("user");
+    wx.request({
+      url: app.globalData.url + '/api/v1/appointment/find?id=' + id,
+      success: function (res) {
+        console.log(res.data.data.lawAppointment)
+        if (res.data.code == 0) {
+          that.setData({
+            picturesInfo: {
+              ...res.data.data.lawAppointment,
+              createId: userinfo.id,
+              activitiesTime: app.formatDateday(res.data.data.lawAppointment.activitiesTime)
+            },
+            disabled
+          })
+        } else {
+          wx.showModal({
+            title: '提示',
+            content: "请求失败!"
+          })
+        }
+      }
+    })
+  },
+
+  inputChange: function (e) {
+    var name = e.currentTarget.dataset.name;
+    this.setData({
+      picturesInfo: {
+        ...this.data.picturesInfo,
+        [name]: e.detail.value
+      }
+    })
+
+  },
+
+  submit: function (e) {
+    var picturesInfo = this.data.picturesInfo;
+    if (!picturesInfo.schoolName) {
+      return app.showModal("请填写学校名称!");
+    }
+    if (!picturesInfo.schoolAddress) {
+      return app.showModal("请填写学校地址!");
+    }
+    if (!picturesInfo.contactName) {
+      return app.showModal("请填写联系人!");
+    }
+    if (!picturesInfo.contactPhone) {
+      return app.showModal("请填写联系方式!");
+    }
+    if (!picturesInfo.activitiesTime) {
+      return app.showModal("请填写活动时间!");
+    }
+    if (!picturesInfo.content) {
+      return app.showModal("请填写普法内容!");
+    }
+    if (!picturesInfo.activitiesNum) {
+      return app.showModal("请填写活动人数!");
+    }
+    if (!picturesInfo.activitiesAddress) {
+      return app.showModal("请填写活动场地!");
+    }
+    if (!picturesInfo.remake) {
+      return app.showModal("请填写备注!");
+    }
+    var that = this;
+    wx.request({
+      url: app.globalData.url + '/api/v1/appointment/save',
+      data: picturesInfo,
+      method: 'POST',
+      header: {
+        "Content-Type": "application/json"
+      },
+      success: function (res) {
+        if (res.data.code == 0) {
+          wx.showToast({
+            title: '提交成功',
+            icon: 'success',
+            duration: 2000
+          })
+          setTimeout(function () {
+            wx.reLaunch({
+              url: '../zhwj/zhwj',
+            })
+          }, 2000)
+        } else {
+          wx.showModal({
+            title: '提示',
+            content: "提交失败!"
+          })
+        }
+      }
+    })
+  },
+})
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/pfyy/pfyy.json b/SunshineLnsMinApp/pages/pfyy/pfyy.json
new file mode 100644
index 0000000..8a0a993
--- /dev/null
+++ b/SunshineLnsMinApp/pages/pfyy/pfyy.json
@@ -0,0 +1,5 @@
+{
+  "enablePullDownRefresh":true,
+  "usingComponents": {
+  }
+}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/pfyy/pfyy.wxml b/SunshineLnsMinApp/pages/pfyy/pfyy.wxml
new file mode 100644
index 0000000..aa06cf0
--- /dev/null
+++ b/SunshineLnsMinApp/pages/pfyy/pfyy.wxml
@@ -0,0 +1,68 @@
+<!--pages/pfyy/pfyy.wxml-->
+<div class="boxshadow">
+	<div class="publicSnapshot-message">
+		<span></span>
+		<span>信息填写</span>
+	</div>
+	<div class="border-bottom"></div>
+	<div class="publicSnapshot-main">
+		<span class="red-title">*</span>
+		<span>学校名称</span>
+		<input data-name="schoolName" bindinput="inputChange" disabled="{{disabled}}" value='{{picturesInfo.schoolName}}'></input>
+	</div>
+	<div class="publicSnapshot-main">
+		<span class="red-title">*</span>
+		<span>学校地址</span>
+		<input data-name="schoolAddress" bindinput="inputChange" disabled="{{disabled}}" value='{{picturesInfo.schoolAddress}}'></input>
+	</div>
+	<div class="publicSnapshot-main">
+		<span class="red-title">*</span>
+		<span>联系人</span>
+		<input data-name="contactName" bindinput="inputChange" disabled="{{disabled}}" value='{{picturesInfo.contactName}}'></input>
+	</div>
+	<div class="publicSnapshot-main">
+		<span class="red-title">*</span>
+		<span>联系方式</span>
+		<input data-name="contactPhone" bindinput="inputChange" disabled="{{disabled}}" value='{{picturesInfo.contactPhone}}'></input>
+	</div>
+	<div class="publicSnapshot-main">
+		<span class="red-title">*</span>
+		<span>活动时间</span>
+		<picker mode="date" value="{{picturesInfo.activitiesTime}}" data-name="activitiesTime" disabled="{{disabled}}" bindchange="inputChange">
+			<view class="picker">
+				{{picturesInfo.activitiesTime}}
+			</view>
+		</picker>
+    <!-- <pickerYMDHM bind:onPickerChange="onPickerChange3" date="{{endedTime}}"></pickerYMDHM> -->
+	</div>
+
+	<div class="publicSnapshot-main" style='display:block'>
+		<view class="zhghInfo-center-title">
+			<span class="red-title">*</span>
+			<span>普法内容</span>
+		</view>
+		<textarea data-name="content" bindinput="inputChange" disabled="{{disabled}}" value='{{picturesInfo.content}}' placeholder="请输入普法内容" />
+		</div>
+	<div class="publicSnapshot-main">
+		<span class="red-title">*</span>
+		<span>活动人数</span>
+		<input type="number" data-name="activitiesNum" bindinput="inputChange" disabled="{{disabled}}" value='{{picturesInfo.activitiesNum}}'></input>
+	</div>
+	<div class="publicSnapshot-main">
+		<span class="red-title">*</span>
+		<span>活动场地</span>
+		<input type="number" data-name="activitiesAddress" bindinput="inputChange" disabled="{{disabled}}" value='{{picturesInfo.activitiesAddress}}'></input>
+	</div>
+  	<div class="publicSnapshot-main" style='display:block'>
+		<view class="zhghInfo-center-title">
+			<span class="red-title">*</span>
+			<span>备注</span>
+		</view>
+		<textarea data-name="remake" bindinput="inputChange" disabled="{{disabled}}" value='{{picturesInfo.remake}}' placeholder="请输入备注内容" />
+		</div>
+</div>
+<div class="index-gray"></div>
+
+<div class="{{disabled? 'displayNone':'submitButton'}}">
+  <div style='width:90%' class="mini-submit" bindtap="submit">提交申请</div>
+</div>
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/pfyy/pfyy.wxss b/SunshineLnsMinApp/pages/pfyy/pfyy.wxss
new file mode 100644
index 0000000..2e1d734
--- /dev/null
+++ b/SunshineLnsMinApp/pages/pfyy/pfyy.wxss
@@ -0,0 +1,227 @@
+/* pages/pfyy/pfyy.wxss */
+input {
+  font-size: 14px;
+  color: #999;
+  text-align: right;
+}
+
+.border-bottom {
+  border-bottom: 1px solid #f2f2f2;
+}
+
+.upload {
+  width: 48px;
+  height: 48px;
+}
+
+.activity-uploadImag-del {
+  width: 20px;
+  height: 20px;
+  position: absolute;
+  left: 28px;
+  z-index: 10;
+}
+
+.publicSnapshot-message {
+  display: flex;
+  padding: 2vh;
+}
+
+.publicSnapshot-message span:nth-child(1) {
+  border-left: 3px solid #2195ff;
+}
+
+.publicSnapshot-message span:nth-child(2) {
+  padding-left: 1vh;
+  font-size: 18px;
+  font-weight: bold;
+}
+
+.activity-uploadImag-icon {
+  width: 48px;
+  height: 48px;
+}
+
+.educt_hasupload_pic {
+  display: flex;
+  position: relative;
+  padding-right: 1vh;
+}
+
+.activity-uploadImage {
+  display: flex;
+  padding: 1vh 2vh;
+  /* flex-direction: column; */
+}
+
+.publicSnapshot-textarea {
+  font-size: 14px;
+  box-shadow: 0px 6px 6px 0 rgba(80, 119, 170, 0.06);
+  display: flex;
+  flex-direction: column;
+}
+
+textarea {
+   box-sizing: border-box;
+  width: 100%;
+  height: 100px;
+  display: block;
+  position: relative;
+  padding: 2vh;
+}
+
+.activity-uploadImage-title {
+  font-size: 14px;
+  padding: 1vh 2vh;
+}
+
+.publicSnapshot-main {
+  padding: 2vh 2vh 2vh 0;
+  display: flex;
+  margin-left: 2vh;
+  border-bottom: 1px solid #f2f2f2;
+}
+
+.publicSnapshot-main span:nth-child(1) {
+  font-size: 14px;
+  width: 2%;
+}
+
+.publicSnapshot-main span:nth-child(2) {
+  font-size: 14px;
+  color: #333;
+  margin-right: auto;
+  width: 20%;
+}
+
+.publicSnapshot-main span:nth-child(3) {
+  font-size: 14px;
+  color: #999;
+}
+
+.publicSnapshot-main-img {
+  width: 16px;
+  height: 22px;
+}
+
+.publicSnapshot-main .person_w{
+  display: inline-block;
+  font-size: 14px;
+  color: #333;
+  margin-right: auto;
+  width: auto;
+}
+
+.publicSnapshot-main-picker {
+  font-size: 14px;
+  color: #999;
+  width: 60%;
+  text-align: right;
+}
+
+.publicSnapshot-main-img {
+  width: 16px;
+  height: 22px;
+}
+
+.publicSnapshot-status {
+  border-bottom: 1px solid #f2f2f2;
+  display: flex;
+  flex-direction: column;
+  box-shadow: 0px 4px 8px 0px rgba(136, 136, 136, 0.11);
+}
+
+.publicSnapshot-status-main {
+  padding: 2vh;
+  border-bottom: 1px solid #f2f2f2;
+  display: flex;
+}
+
+.publicSnapshot-status-main-nav {
+  font-size: 18px;
+  color: #333;
+  font-weight: 600;
+  margin-right: auto;
+}
+
+.publicSnapshot-status-main-state {
+  width: 10vh;
+  border-radius: 18px;
+  display: flex;
+  justify-content: center;
+  padding: 1vh;
+  box-shadow: 0px 4px 8px 0px rgba(136, 136, 136, 0.11);
+}
+
+.publicSnapshot-status-main-state  span {
+  font-size: 14px;
+  color: #fff;
+}
+
+.publicSnapshot-status-time {
+  padding: 2vh;
+  display: flex;
+  color: #333;
+}
+
+.publicSnapshot-status-time-left {
+  margin-right: auto;
+  font-size: 14px;
+}
+
+.publicSnapshot-status-time-right {
+  font-size: 14px;
+}
+.contantType-picker{
+  font-size: 14px;
+}
+.contantType-picker-div{
+  display:flex;
+  width: 31%
+}
+.publicSnapshot-main-img {
+  width: 16px;
+  height: 22px;
+}
+.msg-reply-view-content {
+  overflow: auto;
+  padding:5px 0px 5px 20px;
+}
+
+.msg-reply-view-content::-webkit-scrollbar {
+  width: 0;
+}
+
+.msg-reply-view-info {
+  padding: 8px;
+  line-height: 30px;
+  color: #000;
+}
+
+.msg-reply-view-admin {
+  display: block;
+  float: left;
+  color: green;
+}
+
+.msg-reply-view-user {
+  display: block;
+  float: left;
+  color: #1790ff;
+}
+
+.msg-reply-view-time-user {
+  display: block;
+  color: #1790ff;
+}
+
+.msg-reply-view-time-admin {
+  display: block;
+  color: green;
+}
+
+.reply-div {
+  margin: 10px;
+  font-size: 12px;
+  color: #1790ff;
+}
diff --git a/SunshineLnsMinApp/pages/publicMsgDetails/publicMsgDetails.json b/SunshineLnsMinApp/pages/publicMsgDetails/publicMsgDetails.json
index eea44da..fd1d721 100644
--- a/SunshineLnsMinApp/pages/publicMsgDetails/publicMsgDetails.json
+++ b/SunshineLnsMinApp/pages/publicMsgDetails/publicMsgDetails.json
@@ -1,4 +1,5 @@
 {
   "backgroundTextStyle": "light",
+  "navigationBarTitleText": "详情",
   "navigationBarBackgroundColor": "#fff"
 }
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/rzcx/rzcx.js b/SunshineLnsMinApp/pages/rzcx/rzcx.js
new file mode 100644
index 0000000..a378fa9
--- /dev/null
+++ b/SunshineLnsMinApp/pages/rzcx/rzcx.js
@@ -0,0 +1,145 @@
+// pages/rzcx/rzcx.js
+
+const app = getApp();
+Page({
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    user: app.globalData.imgUrl + '/image/user.svg',
+    add: app.globalData.imgUrl + '/image/add.svg',
+    del: app.globalData.imgUrl + '/image/del.svg',
+    videoIcon: app.globalData.imgUrl + '/image/video.png',
+    disabled: false,
+    id: '',
+    picType: '',
+    evalList: {},
+    dataSet: {},
+    picturesInfo: {},
+    entityId: ''
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    var that = this;
+    console.log(options)
+    let id = options.id
+    that.setData({
+      id
+    })
+    let disabled = options.disabled
+    let flag = options.flag || ''
+    var userinfo = wx.getStorageSync("user");
+    wx.request({
+      url: app.globalData.url + '/api/entry/find?id=' + id + '&flag=' + flag,
+      success: function (res) {
+        console.log(res.data)
+        // if (res.data.code == 0) {
+        console.log(res.data)
+        var evalList1019 = res.data.list || [];
+        console.log('37', evalList1019)
+        var evalList = {
+          evalList1019,
+        };
+        for (var i in evalList) {
+          evalList[i] = evalList[i].map(({
+            url,
+            uid
+          }) => ({
+            pic: url,
+            id: uid
+          }))
+        }
+        console.log('48', evalList)
+
+        that.setData({
+          picturesInfo: {
+            ...res.data,
+            createrId: userinfo.id,
+          },
+          entityId: res.data.id,
+          disabled,
+          evalList
+        })
+        // } else {
+        //   wx.showModal({
+        //     title: '提示',
+        //     content: "请求失败!"
+        //   })
+        // }
+      }
+    })
+  },
+
+  inputChange: function (e) {
+    var name = e.currentTarget.dataset.name;
+    this.setData({
+      picturesInfo: {
+        ...this.data.picturesInfo,
+        [name]: e.detail.value
+      }
+    })
+
+  },
+
+  submit: function (e) {
+    var picturesInfo = this.data.picturesInfo;
+
+    if (!picturesInfo.reason) {
+      return app.showModal("请填写申请理由!");
+    }
+    var that = this;
+    console.log(picturesInfo)
+    wx.request({
+      url: app.globalData.url + '/api/entry/miniSave',
+      data: picturesInfo,
+      method: 'POST',
+      header: {
+        "Content-Type": "application/json"
+      },
+      success: function (res) {
+        // if (res.data.code == 0) {
+        wx.showToast({
+          title: '提交成功',
+          icon: 'success',
+          duration: 2000
+        })
+        setTimeout(function () {
+          wx.reLaunch({
+            url: '../zhwj/zhwj',
+          })
+        }, 2000)
+        // } else {
+        //   wx.showModal({
+        //     title: '提示',
+        //     content: "提交失败!"
+        //   })
+        // }
+      }
+    })
+  },
+
+  // 删除图片
+  clearImg: function (e) {
+    var that = this;
+    app.clearImg(e, that)
+  },
+
+  //预览图片
+  previewImage: function (e) {
+    app.previewImage(e)
+  },
+
+  uploadFiles: function (e) {
+    var that = this;
+    wx.showActionSheet({
+      itemList: ['拍照上传', '选择图片'],
+      success: function (res) {
+        app.joinPicture(e, that, 1019, that.data.entityId)
+      },
+      fail: function (res) {}
+    })
+  },
+})
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/rzcx/rzcx.json b/SunshineLnsMinApp/pages/rzcx/rzcx.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/SunshineLnsMinApp/pages/rzcx/rzcx.json
@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/rzcx/rzcx.wxml b/SunshineLnsMinApp/pages/rzcx/rzcx.wxml
new file mode 100644
index 0000000..11a3aba
--- /dev/null
+++ b/SunshineLnsMinApp/pages/rzcx/rzcx.wxml
@@ -0,0 +1,33 @@
+<!--pages/rzcx/rzcx.wxml-->
+
+<div class="boxshadow">
+	<div class="publicSnapshot-message">
+		<span></span>
+		<span>照片上传</span>
+	</div>
+	<div class="border-bottom"></div>
+	<div class="activity-uploadImage">
+		<view class="educt_hasupload_pic" wx:for="{{evalList.evalList1019}}" wx:key="index">
+			<image src="{{item.pic}}" class="upload" name="{{item.pic}}" bindtap="previewImage" data-src="{{item.pic}}"></image>
+			<image src="{{del}}" bindtap='clearImg' data-index="{{index}}" id="{{item.id}}" data-associatetypeid="{{1019}}" class="{{disabled? 'displayNone':'activity-uploadImag-del'}}"></image>
+		</view>
+		<view bindtap="uploadFiles" class="{{disabled? 'displayNone':'educt_upload_add'}}">
+			<image class="activity-uploadImag-icon" src="{{add}}"></image>
+		</view>
+	</div>
+</div>
+<div class="boxshadow">
+	<div class="publicSnapshot-message">
+		<span></span>
+		<span>申请理由</span>
+	</div>
+	<div class="border-bottom"></div>
+	<div class="publicSnapshot-main" style='display:block'>
+		<textarea data-name="reason" bindinput="inputChange" disabled="{{disabled}}" value='{{picturesInfo.reason}}' placeholder="请输入备注内容" />
+		</div>
+</div>
+<div class="index-gray"></div>
+
+<div class="{{disabled? 'displayNone':'submitButton'}}">
+  <div style='width:90%' class="mini-submit" bindtap="submit">提交申请</div>
+</div>
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/rzcx/rzcx.wxss b/SunshineLnsMinApp/pages/rzcx/rzcx.wxss
new file mode 100644
index 0000000..e74b02d
--- /dev/null
+++ b/SunshineLnsMinApp/pages/rzcx/rzcx.wxss
@@ -0,0 +1,227 @@
+/* pages/rzcx/rzcx.wxss */
+input {
+  font-size: 14px;
+  color: #999;
+  text-align: right;
+}
+
+.border-bottom {
+  border-bottom: 1px solid #f2f2f2;
+}
+
+.upload {
+  width: 48px;
+  height: 48px;
+}
+
+.activity-uploadImag-del {
+  width: 20px;
+  height: 20px;
+  position: absolute;
+  left: 28px;
+  z-index: 10;
+}
+
+.publicSnapshot-message {
+  display: flex;
+  padding: 2vh;
+}
+
+.publicSnapshot-message span:nth-child(1) {
+  border-left: 3px solid #2195ff;
+}
+
+.publicSnapshot-message span:nth-child(2) {
+  padding-left: 1vh;
+  font-size: 18px;
+  font-weight: bold;
+}
+
+.activity-uploadImag-icon {
+  width: 48px;
+  height: 48px;
+}
+
+.educt_hasupload_pic {
+  display: flex;
+  position: relative;
+  padding-right: 1vh;
+}
+
+.activity-uploadImage {
+  display: flex;
+  padding: 1vh 2vh;
+  /* flex-direction: column; */
+}
+
+.publicSnapshot-textarea {
+  font-size: 14px;
+  box-shadow: 0px 6px 6px 0 rgba(80, 119, 170, 0.06);
+  display: flex;
+  flex-direction: column;
+}
+
+textarea {
+   box-sizing: border-box;
+  width: 100%;
+  height: 100px;
+  display: block;
+  position: relative;
+  padding: 2vh;
+}
+
+.activity-uploadImage-title {
+  font-size: 14px;
+  padding: 1vh 2vh;
+}
+
+.publicSnapshot-main {
+  padding: 2vh 2vh 2vh 0;
+  display: flex;
+  margin-left: 2vh;
+  border-bottom: 1px solid #f2f2f2;
+}
+
+.publicSnapshot-main span:nth-child(1) {
+  font-size: 14px;
+  width: 2%;
+}
+
+.publicSnapshot-main span:nth-child(2) {
+  font-size: 14px;
+  color: #333;
+  margin-right: auto;
+  width: 20%;
+}
+
+.publicSnapshot-main span:nth-child(3) {
+  font-size: 14px;
+  color: #999;
+}
+
+.publicSnapshot-main-img {
+  width: 16px;
+  height: 22px;
+}
+
+.publicSnapshot-main .person_w{
+  display: inline-block;
+  font-size: 14px;
+  color: #333;
+  margin-right: auto;
+  width: auto;
+}
+
+.publicSnapshot-main-picker {
+  font-size: 14px;
+  color: #999;
+  width: 60%;
+  text-align: right;
+}
+
+.publicSnapshot-main-img {
+  width: 16px;
+  height: 22px;
+}
+
+.publicSnapshot-status {
+  border-bottom: 1px solid #f2f2f2;
+  display: flex;
+  flex-direction: column;
+  box-shadow: 0px 4px 8px 0px rgba(136, 136, 136, 0.11);
+}
+
+.publicSnapshot-status-main {
+  padding: 2vh;
+  border-bottom: 1px solid #f2f2f2;
+  display: flex;
+}
+
+.publicSnapshot-status-main-nav {
+  font-size: 18px;
+  color: #333;
+  font-weight: 600;
+  margin-right: auto;
+}
+
+.publicSnapshot-status-main-state {
+  width: 10vh;
+  border-radius: 18px;
+  display: flex;
+  justify-content: center;
+  padding: 1vh;
+  box-shadow: 0px 4px 8px 0px rgba(136, 136, 136, 0.11);
+}
+
+.publicSnapshot-status-main-state  span {
+  font-size: 14px;
+  color: #fff;
+}
+
+.publicSnapshot-status-time {
+  padding: 2vh;
+  display: flex;
+  color: #333;
+}
+
+.publicSnapshot-status-time-left {
+  margin-right: auto;
+  font-size: 14px;
+}
+
+.publicSnapshot-status-time-right {
+  font-size: 14px;
+}
+.contantType-picker{
+  font-size: 14px;
+}
+.contantType-picker-div{
+  display:flex;
+  width: 31%
+}
+.publicSnapshot-main-img {
+  width: 16px;
+  height: 22px;
+}
+.msg-reply-view-content {
+  overflow: auto;
+  padding:5px 0px 5px 20px;
+}
+
+.msg-reply-view-content::-webkit-scrollbar {
+  width: 0;
+}
+
+.msg-reply-view-info {
+  padding: 8px;
+  line-height: 30px;
+  color: #000;
+}
+
+.msg-reply-view-admin {
+  display: block;
+  float: left;
+  color: green;
+}
+
+.msg-reply-view-user {
+  display: block;
+  float: left;
+  color: #1790ff;
+}
+
+.msg-reply-view-time-user {
+  display: block;
+  color: #1790ff;
+}
+
+.msg-reply-view-time-admin {
+  display: block;
+  color: green;
+}
+
+.reply-div {
+  margin: 10px;
+  font-size: 12px;
+  color: #1790ff;
+}
diff --git a/SunshineLnsMinApp/pages/rzcxList/rzcxList.js b/SunshineLnsMinApp/pages/rzcxList/rzcxList.js
new file mode 100644
index 0000000..497ef69
--- /dev/null
+++ b/SunshineLnsMinApp/pages/rzcxList/rzcxList.js
@@ -0,0 +1,85 @@
+// pages/rzcxList/rzcxList.js
+const app = getApp()
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    loading: app.globalData.imgUrl + '/image/loading.svg',
+    currentTab: 0,
+    size: 10,
+    size1: 10,
+    size2: 10,
+    content: '------加载中------',
+    hasMoreData: true,
+    createTime: '',
+    dataSet: []
+  },
+
+
+  showList: function () {
+    var userinfo = wx.getStorageSync("user");
+    var that = this;
+    var id = userinfo.id
+    var str;
+    var sizeQty;
+    wx.request({
+      url: app.globalData.url + '/api/entry/query?page=1&rows=' + that.data.size + '&type=' + 1 + '&userId=' + id,
+      success: function (res) {
+        console.log(res.data.rows)
+        let dataSet = res.data.rows.map(({
+          createTime,
+          ...e
+        }) => ({
+          ...e,
+          createTime: app.formatDate(createTime)
+        }))
+        console.log(dataSet)
+        if (res.data.total < that.data.size) {
+          that.setData({
+            dataSet: dataSet,
+            hasMoreData: false,
+            content: '------我是有底线的------'
+          })
+        } else {
+          that.setData({
+            dataSet: dataSet,
+            hasMoreData: true,
+            content: '------加载更多------',
+            size: that.data.size + 10
+          })
+        }
+
+      }
+    })
+  },
+
+  businessSchedule: function (event) {
+    var id = event.currentTarget.id;
+    wx.navigateTo({
+      url: '../rzcx/rzcx?id=' + id + '&flag=wx' + '&disabled=' + true,
+    })
+  },
+
+  onLoad: function () {
+    this.showList()
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+    if (this.data.hasMoreData) {
+      this.showList(this.data.currentTab)
+      this.setData({
+        content: '------加载更多------'
+      })
+    } else {
+      this.setData({
+        content: '------我是有底线的------'
+      })
+    }
+  },
+
+})
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/rzcxList/rzcxList.json b/SunshineLnsMinApp/pages/rzcxList/rzcxList.json
new file mode 100644
index 0000000..e5714ca
--- /dev/null
+++ b/SunshineLnsMinApp/pages/rzcxList/rzcxList.json
@@ -0,0 +1,6 @@
+{
+  "navigationBarTitleText": "入职查询",
+  "backgroundTextStyle": "light",
+  "navigationBarBackgroundColor": "#fff",
+  "navigationBarTextStyle": "black"
+}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/rzcxList/rzcxList.wxml b/SunshineLnsMinApp/pages/rzcxList/rzcxList.wxml
new file mode 100644
index 0000000..b3d0034
--- /dev/null
+++ b/SunshineLnsMinApp/pages/rzcxList/rzcxList.wxml
@@ -0,0 +1,18 @@
+<!--pages/rzcxList/rzcxList.wxml-->
+<!--列表数据-->
+<view style='flex-direction:column;height:94vh;background-color:rgba(80, 119, 170, 0.06)'>
+  <div class="businessSchedule" bindtap='businessSchedule' id="{{item.id}}" wx:for="{{dataSet}}" wx:for-index='key' wx:key="*this">
+    <div class="businessSchedule-top">
+      <div class="businessSchedule-top-img">
+        <image src="{{item.iconSrc}}" class="businessSchedule-top-img"></image>
+      </div>
+      <div class="businessSchedule-top-title">入职查询</div>
+      <div class="businessSchedule-top-status backgroundorange-title" wx:if="{{item.status==1}}">待回复</div>
+      <div class="businessSchedule-top-status backgroundgreen-title" wx:elif="{{item.status==2}}">已回复</div>
+      <div class="businessSchedule-top-status backgroundgray-title" wx:else>未知文件</div>
+    </div>
+    <div class="businessSchedule-center">{{item.reason}}</div>
+    <div class="businessSchedule-bottom">于 {{item.createTime}} 提交申请</div>
+  </div>
+  <div class="businessSchedule-load">------{{content}}------</div>
+</view>
diff --git a/SunshineLnsMinApp/pages/rzcxList/rzcxList.wxss b/SunshineLnsMinApp/pages/rzcxList/rzcxList.wxss
new file mode 100644
index 0000000..3b1ecc8
--- /dev/null
+++ b/SunshineLnsMinApp/pages/rzcxList/rzcxList.wxss
@@ -0,0 +1,111 @@
+/* pages/rzcxList/rzcxList.wxss */
+view {
+  display: flex;
+}
+
+.navbar {
+  flex: none;
+  display: flex;
+  background: #fff;
+  font-size: 18px;
+  color: #999;
+  height: 6vh;
+}
+
+.navbar .item {
+  position: relative;
+  flex: auto;
+  text-align: center;
+  line-height: 80rpx;
+}
+
+.navbar .item.active {
+  color: #2195ff;
+}
+
+.navbar .item.active:after {
+  content: "";
+  display: block;
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  height: 4rpx;
+  background: #2195ff;
+}
+
+.businessSchedule {
+  font-size: 16px;
+  padding: 2vh;
+  margin: 2vh;
+  background-color: #fff;
+  box-shadow: 0px 6px 6px 0 rgba(80, 119, 170, 0.06);
+}
+
+.businessSchedule-top {
+  display: flex;
+  color: #333;
+  align-items: center;
+  padding-bottom: 1vh;
+  border-bottom: 1px solid #f2f2f2;
+}
+
+.businessSchedule-top-img {
+  width: 3vh;
+  height: 3vh;
+}
+
+.businessSchedule-top-title {
+  padding-left: 1vh;
+}
+
+.businessSchedule-top-status {
+  margin-left: auto;
+  display: flex;
+  justify-content: center;
+  box-shadow: 0px 4px 8px 0px rgba(136, 136, 136, 0.11);
+  padding: 1vh;
+  border-radius: 18px;
+  color: #fff;
+}
+
+.businessSchedule-center {
+  font-size: 14px;
+  display: flex;
+  padding: 1vh 0;
+  color: #333;
+}
+
+.businessSchedule-bottom {
+  display: flex;
+  font-size: 14px;
+  color: #999;
+}
+
+.loading {
+  padding: 10rpx;
+  text-align: center;
+}
+
+.loading:before {
+  display: inline-block;
+  margin-right: 5rpx;
+  vertical-align: middle;
+  content: '';
+  width: 40rpx;
+  height: 40rpx;
+  background-size: contain;
+  animation: rotate 1s linear infinite;
+}
+
+.loading.complete:before {
+  display: none;
+}
+
+.businessSchedule-load {
+  display: flex;
+  justify-content: center;
+  color: #999;
+  font-size: 14px;
+  margin-bottom: 4vh;
+}
diff --git a/SunshineLnsMinApp/pages/xsuojbInfo/xsuojbInfo.json b/SunshineLnsMinApp/pages/xsuojbInfo/xsuojbInfo.json
index b9ce25e..de3b455 100644
--- a/SunshineLnsMinApp/pages/xsuojbInfo/xsuojbInfo.json
+++ b/SunshineLnsMinApp/pages/xsuojbInfo/xsuojbInfo.json
@@ -4,15 +4,8 @@
   "navigationBarBackgroundColor": "#fff",
   "navigationBarTextStyle": "black",
   "usingComponents": {
-    "wux-upload": "../../templeteDist/wuxDist/upload/index",
     "wux-popup-select": "../../templeteDist/wuxDist/popup-select/index",
     "wux-cell": "../../templeteDist/wuxDist/cell/index",
-    "wux-accordion-group": "../../templeteDist/wuxDist/accordion-group/index",
-    "wux-accordion": "../../templeteDist/wuxDist/accordion/index",
-    "wux-icon": "../../templeteDist/wuxDist/icon/index",
-    "wux-date-picker-view": "../../templeteDist/wuxDist/date-picker-view/index",
-    "wux-date-picker": "../../templeteDist/wuxDist/date-picker/index",
-    "wux-select": "../../templeteDist/wuxDist/select/index",
     "wux-field": "../../templeteDist/wuxDist/field/index",
     "wux-textarea": "../../templeteDist/wuxDist/textarea/index",
     "wux-cell-group": "../../templeteDist/wuxDist/cell-group/index",
diff --git a/SunshineLnsMinApp/pages/yshjqyfw/yshjqyfw.js b/SunshineLnsMinApp/pages/yshjqyfw/yshjqyfw.js
index e6889cc..4461c26 100644
--- a/SunshineLnsMinApp/pages/yshjqyfw/yshjqyfw.js
+++ b/SunshineLnsMinApp/pages/yshjqyfw/yshjqyfw.js
@@ -6,7 +6,7 @@
    * 页面的初始数据
    */
   data: {
-    wjgk:'./../../images/wjgk.jpg',
+    wjgk: './../../images/wjgk.jpg',
     dongtai1_1: app.globalData.imgUrl + '/image/dongtai1-1.jpg',
     dongtai2_1: app.globalData.imgUrl + '/image/dongtai2-1.jpg',
     dongtai3_1: app.globalData.imgUrl + '/image/dongtai3-1.jpg',
@@ -61,17 +61,48 @@
       badge: 0,
       name: '版权'
     }],
+    dataSet: []
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
-  onLoad: function(options) {
-
+  onLoad: function (options) {
+    var that = this;
+    wx.showLoading();
+    wx.request({
+      url: app.globalData.url + '/api/question/examination',
+      data: {
+        page: 1,
+        size: 1000,
+        flag: '主动预防',
+      },
+      success: function (res) {
+        wx.hideLoading();
+        console.log('res', res);
+        if (res.data.code == 0) {
+          let content = res.data.data.result.content.map(({
+            createTime,
+            ...i
+          }) => ({
+            ...i,
+            createTime: app.formatDate(createTime),
+          }));
+          console.log(content)
+          that.setData({
+            dataSet: content
+          })
+        } else {
+          wx.showToast({
+            title: res.data.msg,
+          })
+        }
+      }
+    })
   },
 
   // 跳转
-  linkFunction: function(event) {
+  linkFunction: function (event) {
     var str = event.currentTarget.dataset['str'];
     var id = event.currentTarget.dataset['id'];
     wx.navigateTo({
diff --git a/SunshineLnsMinApp/pages/yshjqyfw/yshjqyfw.wxml b/SunshineLnsMinApp/pages/yshjqyfw/yshjqyfw.wxml
index e3164cc..4c60026 100644
--- a/SunshineLnsMinApp/pages/yshjqyfw/yshjqyfw.wxml
+++ b/SunshineLnsMinApp/pages/yshjqyfw/yshjqyfw.wxml
@@ -4,71 +4,54 @@
 </view>
 
 <view class="zhwj-list">
-  <view class="zhwj-list-flex">
-    <view class="zhwj-list-flex-l" data-str="zscqdxal" bindtap='linkFunction'>
-      <view class="cu-avatar round margin-left zhwj-list-flex-l-img" style="background-image: url('https://xnwj.gznsjc.gov.cn/nsjc-charge/image/zuj1.png');"></view>
-      <view class="zhwj-list-flex-l-text">
-        <view class="text-black text-bold text-lg">典型案例</view>
-      </view>
-    </view>
-    <view class="zhwj-list-flex-r" data-str="zhdt" bindtap='linkFunction'>
-      <view class="cu-avatar round margin-left zhwj-list-flex-l-img" style="background-image: url('https://xnwj.gznsjc.gov.cn/nsjc-charge/image/zuj2.png');"></view>
-      <view class="zhwj-list-flex-l-text">
-        <view class="text-black text-bold text-lg">主动预防</view>
-      </view>
-    </view>
-  </view>
-  <view class="zhwj-list-flex">
-    <view class="zhwj-list-flex-l" data-str="flcx" bindtap='linkFunction'>
-      <view class="cu-avatar round margin-left zhwj-list-flex-l-img" style="background-image: url('https://xnwj.gznsjc.gov.cn/nsjc-charge/image/zuj3.png');"></view>
-      <view class="zhwj-list-flex-l-text">
-        <view class="text-black text-bold text-lg">法律查询</view>
-      </view>
-    </view>
-    <view class="zhwj-list-flex-r" data-str="wjjb" bindtap='linkFunction'>
-      <view class="cu-avatar round margin-left zhwj-list-flex-l-img" style="background-image: url('https://xnwj.gznsjc.gov.cn/nsjc-charge/image/zuj4.png');"></view>
-      <view class="zhwj-list-flex-l-text">
-        <view class="text-black text-bold text-lg">企业体检</view>
-      </view>
-    </view>
-  </view>
+	<view class="zhwj-list-flex">
+		<view class="zhwj-list-flex-l" data-str="zscqdxal" bindtap='linkFunction'>
+			<view class="cu-avatar round margin-left zhwj-list-flex-l-img" style="background-image: url('https://xnwj.gznsjc.gov.cn/nsjc-charge/image/zuj1.png');"></view>
+			<view class="zhwj-list-flex-l-text">
+				<view class="text-black text-bold text-lg">典型案例</view>
+			</view>
+		</view>
+		<view class="zhwj-list-flex-r" data-str="zdyf" bindtap='linkFunction'>
+			<view class="cu-avatar round margin-left zhwj-list-flex-l-img" style="background-image: url('https://xnwj.gznsjc.gov.cn/nsjc-charge/image/zuj2.png');"></view>
+			<view class="zhwj-list-flex-l-text">
+				<view class="text-black text-bold text-lg">主动预防</view>
+			</view>
+		</view>
+	</view>
+	<view class="zhwj-list-flex">
+		<view class="zhwj-list-flex-l" data-str="flcx" bindtap='linkFunction'>
+			<view class="cu-avatar round margin-left zhwj-list-flex-l-img" style="background-image: url('https://xnwj.gznsjc.gov.cn/nsjc-charge/image/zuj3.png');"></view>
+			<view class="zhwj-list-flex-l-text">
+				<view class="text-black text-bold text-lg">法律查询</view>
+			</view>
+		</view>
+		<view class="zhwj-list-flex-r" data-str="createSub" bindtap='linkFunction'>
+			<view class="cu-avatar round margin-left zhwj-list-flex-l-img" style="background-image: url('https://xnwj.gznsjc.gov.cn/nsjc-charge/image/zuj4.png');"></view>
+			<view class="zhwj-list-flex-l-text">
+				<view class="text-black text-bold text-lg">企业体检</view>
+			</view>
+		</view>
+	</view>
 
 </view>
 
 <view class="index-gray "></view>
 
 <view class="zhwj-b">
-  <view class="zhwj-b-head">
-    <span></span>
-    <view class="zhwj-b-head-title text-black">案件动态</view>
-  </view>
+	<view class="zhwj-b-head">
+		<span></span>
+		<view class="zhwj-b-head-title text-black">主动预防</view>
+	</view>
 
-  <view class="zhwj-b-main" data-str="zhdtInfo" data-id="1" bindtap='linkFunction'>
-    <view class="zhwj-b-head-l">
-      <view class="zhwj-b-head-l-title text-black">南沙区院召开2019“沙鸥”法治宣讲团年度总结暨课件评选会</view>
-      <view class="text-grey">检察宣传部 60阅读</view>
-    </view>
-    <view class="zhwj-b-head-r">
-      <image mode='widthFix' src="{{dongtai1_1}}"></image>
-    </view>
-  </view>
-  <view class="zhwj-b-main" data-str="zhdtInfo" data-id="2" bindtap='linkFunction'>
-    <view class="zhwj-b-head-l">
-      <view class="zhwj-b-head-l-title text-black">“沙鸥”法治宣讲团进校园开展假前安全教育</view>
-      <view class="text-grey">检察宣传部 56阅读</view>
-    </view>
-    <view class="zhwj-b-head-r">
-      <image src="{{dongtai2_1}}" mode='widthFix'></image>
-    </view>
-  </view>
-  <view class="zhwj-b-main" data-str="zhdtInfo" data-id="3" bindtap='linkFunction'>
-    <view class="zhwj-b-head-l">
-      <view class="zhwj-b-head-l-title text-black">我院与华尔心理咨询中心开展反家暴普法宣传</view>
-      <view class="text-grey">检察宣传部 245阅读</view>
-    </view>
-    <view class="zhwj-b-head-r">
-      <image src="{{dongtai3_1}}" mode='widthFix'></image>
-    </view>
-  </view>
-
+	<view class="zhwj-b">
+		<view class="zhwj-b-main" wx:for="{{ dataSet }}" data-str="zhdtInfo" data-Id="{{item.id}}" bindtap='linkFunction'>
+			<view class="zhwj-b-head-l">
+				<view class="zhwj-b-head-l-title text-black">{{item.title}}</view>
+				<view class="text-grey">{{item.createTime}}<text decode="{{true}}" space="{{true}}">&nbsp;&nbsp;&nbsp;&nbsp;</text>{{item.readCount}}阅读</view>
+			</view>
+			<view class="zhwj-b-head-r">
+				<image mode='widthFix' src="{{item.attList[0].path}}"></image>
+			</view>
+		</view>
+	</view>
 </view>
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/zdyf/zdyf.js b/SunshineLnsMinApp/pages/zdyf/zdyf.js
new file mode 100644
index 0000000..70d3eb3
--- /dev/null
+++ b/SunshineLnsMinApp/pages/zdyf/zdyf.js
@@ -0,0 +1,79 @@
+// pages/zhdt/zhdt.js
+var app = getApp();
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    dongtai1_1: app.globalData.imgUrl + '/image/dongtai1-1.jpg',
+    dongtai2_1: app.globalData.imgUrl + '/image/dongtai2-1.jpg',
+    dongtai3_1: app.globalData.imgUrl + '/image/dongtai3-1.jpg',
+    inputShowed: false,
+    inputVal: "",
+    dataSet:[]
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    var that = this;
+    wx.showLoading();
+    wx.request({
+      url: app.globalData.url + '/api/article/publicMsgQuery',
+      data: {
+        page: 1,
+        size: 1000,
+        flag: '主动预防',
+      },
+      success: function (res) {
+        wx.hideLoading();
+        console.log('res', res);
+        if (res.data.code == 0) {
+          let content = res.data.data.result.content.map(({
+            createTime,
+            ...i
+          }) => ({
+            ...i,
+            createTime: app.formatDate(createTime),
+          }));
+          console.log(content)
+          that.setData({
+            dataSet: content
+          })
+        } else {
+          wx.showToast({
+            title: res.data.msg,
+          })
+        }
+      }
+    })
+  },
+
+  linkFunction: function (event) {
+    var str = event.currentTarget.dataset['str'];
+    var id = event.currentTarget.dataset['id'];
+    wx.navigateTo({
+      url: '../' + str + '/' + str + '?id=' + id
+    })
+  },
+
+  showInput: function () {
+    this.setData({
+      inputShowed: true
+    });
+  },
+
+  hideInput: function () {
+    this.setData({
+      inputVal: "",
+      inputShowed: false
+    });
+  },
+  clearInput: function () {
+    this.setData({
+      inputVal: ""
+    }, () => {});
+  },
+})
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/zdyf/zdyf.json b/SunshineLnsMinApp/pages/zdyf/zdyf.json
new file mode 100644
index 0000000..5c6d7b7
--- /dev/null
+++ b/SunshineLnsMinApp/pages/zdyf/zdyf.json
@@ -0,0 +1,6 @@
+{
+  "navigationBarTitleText": "主动预防",
+  "backgroundTextStyle": "light",
+  "navigationBarBackgroundColor": "#fff",
+  "navigationBarTextStyle": "black"
+}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/zdyf/zdyf.wxml b/SunshineLnsMinApp/pages/zdyf/zdyf.wxml
new file mode 100644
index 0000000..6dbb7db
--- /dev/null
+++ b/SunshineLnsMinApp/pages/zdyf/zdyf.wxml
@@ -0,0 +1,36 @@
+<!--pages/zhdt/zhdt.wxml-->
+<!-- 搜索 -->
+  <view class="lawsList-search">
+    <view class="page">
+      <view class="page__bd">
+        <view class="weui-search-bar">
+          <view class="weui-search-bar__form">
+            <view class="weui-search-bar__box">
+              <icon class="weui-icon-search_in-box" type="search" size="14"></icon>
+              <input type="text" class="weui-search-bar__input" placeholder="搜索" value="{{inputVal}}" focus="{{inputShowed}}" bindinput="inputTyping" bindconfirm='confirmTap' />
+              <view class="weui-icon-clear" wx:if="{{inputVal.length > 0}}" bindtap="clearInput">
+                <icon type="clear" size="14"></icon>
+              </view>
+            </view>
+            <label class="weui-search-bar__label" hidden="{{inputShowed}}" bindtap="showInput">
+              <icon class="weui-icon-search" type="search" size="14"></icon>
+              <view class="weui-search-bar__text">搜索</view>
+            </label>
+          </view>
+          <view class="weui-search-bar__cancel-btn" hidden="{{!inputShowed}}" bindtap="hideInput">取消</view>
+        </view>
+      </view>
+    </view>
+  </view>
+<!-- <view class="index-gray "></view> -->
+<view class="zhwj-b">
+  <view class="zhwj-b-main" wx:for="{{ dataSet }}" data-str="zhdtInfo" data-Id="{{item.id}}" bindtap='linkFunction'>
+    <view class="zhwj-b-head-l">
+      <view class="zhwj-b-head-l-title text-black">{{item.title}}</view>
+      <view class="text-grey">{{item.createTime}}<text decode="{{true}}" space="{{true}}">&nbsp;&nbsp;&nbsp;&nbsp;</text>{{item.readCount}}阅读</view>
+    </view>
+    <view class="zhwj-b-head-r">
+      <image mode='widthFix' src="{{item.attList[0].path}}"></image>
+    </view>
+  </view>
+</view>
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/zdyf/zdyf.wxss b/SunshineLnsMinApp/pages/zdyf/zdyf.wxss
new file mode 100644
index 0000000..78ed655
--- /dev/null
+++ b/SunshineLnsMinApp/pages/zdyf/zdyf.wxss
@@ -0,0 +1,30 @@
+/* pages/zhdt/zhdt.wxss */
+@import '../../weui.wxss';
+
+
+.zhwj-b-main {
+  display: flex;
+  border-bottom: 1px solid #ebf2fa;
+}
+
+.zhwj-b-head-l {
+  margin: 6px;
+  padding: 6px;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  width: 100%;
+}
+
+.zhwj-b-head-r {
+  margin: 6px;
+}
+
+.zhwj-b-head-r image {
+  width: 108px;
+  height: 80px;
+}
+
+.zhwj-b {
+  background-color: #fff;
+}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/zhdtInfo/zhdtInfo.json b/SunshineLnsMinApp/pages/zhdtInfo/zhdtInfo.json
index ccb2696..300d1c7 100644
--- a/SunshineLnsMinApp/pages/zhdtInfo/zhdtInfo.json
+++ b/SunshineLnsMinApp/pages/zhdtInfo/zhdtInfo.json
@@ -1,5 +1,5 @@
 {
-  "navigationBarTitleText": "未检详情",
+  "navigationBarTitleText": "详情",
   "backgroundTextStyle": "light",
   "navigationBarBackgroundColor": "#fff",
   "navigationBarTextStyle": "black"
diff --git a/SunshineLnsMinApp/pages/zhghInfo/zhghInfo.js b/SunshineLnsMinApp/pages/zhghInfo/zhghInfo.js
index 8362d5a..f44c2d3 100644
--- a/SunshineLnsMinApp/pages/zhghInfo/zhghInfo.js
+++ b/SunshineLnsMinApp/pages/zhghInfo/zhghInfo.js
@@ -51,7 +51,8 @@
               createTime: app.formatDate(res.data.data.createTime),
               startTime: app.formatDate(res.data.data.startTime),
               endTime: app.formatDate(res.data.data.endTime),
-              status: res.data.data.status == 0 ? '未开始' : res.data.data.status == 1 ? '进行中' : res.data.data.status == 2 ? '已结束' : res.data.data.status == 99 ? '结束' : '(未知)'
+              status: res.data.data.status == 0 ? '未开始' : res.data.data.status == 1 ? '进行中' : res.data.data.status == 2 ? '已结束' : res.data.data.status == 99 ? '结束' : '(未知)',
+              
             },
             id: res.data.data.id,
             evalList,
@@ -151,7 +152,7 @@
       data: {
         taskId: that.data.id,
         userId: wx.getStorageSync('id'),
-        taskReport:that.data.taskReport
+        taskReport: that.data.taskReport
       },
       success: function (res) {
         wx.hideLoading();
@@ -173,6 +174,6 @@
       }
     })
 
-   
+
   },
 })
\ No newline at end of file
diff --git a/SunshineLnsMinApp/pages/zhghInfo/zhghInfo.wxml b/SunshineLnsMinApp/pages/zhghInfo/zhghInfo.wxml
index 03ec45b..007a7ab 100644
--- a/SunshineLnsMinApp/pages/zhghInfo/zhghInfo.wxml
+++ b/SunshineLnsMinApp/pages/zhghInfo/zhghInfo.wxml
@@ -38,7 +38,7 @@
 	<view class="zhghInfo-text">
 		<view class="zhghInfo-center-title">任务汇报</view>
 		<view class="zhghInfo-center-textarea">
-			<textarea data-name="taskReport" bindinput="inputChange" disabled="{{disabled}}" placeholder="学会与老人沟通,耐心积极,心态良好" placeholder-style="color:#9B9B9B;"></textarea>
+			<textarea data-name="taskReport" value='{{data.socialTaskObject.taskReport}}' bindinput="inputChange" disabled="{{disabled}}" placeholder="学会与老人沟通,耐心积极,心态良好" placeholder-style="color:#9B9B9B;"></textarea>
 		</view>
 		<view class="button-submit" bindtap='linkFunction'>提交</view>
 	</view>
diff --git a/SunshineLnsMinApp/pages/zhwj/zhwj.wxml b/SunshineLnsMinApp/pages/zhwj/zhwj.wxml
index 0117ff8..27f9e68 100644
--- a/SunshineLnsMinApp/pages/zhwj/zhwj.wxml
+++ b/SunshineLnsMinApp/pages/zhwj/zhwj.wxml
@@ -36,21 +36,21 @@
 			</view>
 		</view>
 	</view>
-	<!-- <view class="zhwj-list-flex">
-		<view class="zhwj-list-flex-l" data-str="weiwc" bindtap='linkFunction'>
+	<view class="zhwj-list-flex">
+		<view class="zhwj-list-flex-l" data-str="rzcx" data-id='new' bindtap='linkFunction'>
 			<view class="cu-avatar round margin-left zhwj-list-flex-l-img" style="background-image: url('https://xnwj.gznsjc.gov.cn/nsjc-charge/image/zuj5.png');"></view>
 			<view class="zhwj-list-flex-l-text">
 				<view class="text-black text-bold text-lg">入职查询</view>
 				<view class="text-gray">未检职工入职查询</view>
 			</view>
-		</view> -->
-		<!-- <view class="zhwj-list-flex-r" data-str="weiwc" bindtap='linkFunction'>
+		</view>
+		<view class="zhwj-list-flex-r" data-str="pfyy" data-id='new' bindtap='linkFunction'>
       <view class="cu-avatar round margin-left zhwj-list-flex-l-img" style="background-image: url('https://xnwj.gznsjc.gov.cn/nsjc-charge/image/zuj6.png');"></view>
       <view class="zhwj-list-flex-l-text">
         <view class="text-black text-bold text-lg">普法预约</view>
         <view class="text-gray">预约参观法治基地</view>
       </view>
-    </view> -->
+    </view>
 
 		<!-- <view class="zhwj-list-flex-r" data-str="fzjdvisitList" bindtap='linkFunction'>
 			<view class="cu-avatar round margin-left zhwj-list-flex-l-img" style="background-image: url('https://xnwj.gznsjc.gov.cn/nsjc-charge/image/zuj6.png');"></view>
@@ -58,9 +58,9 @@
 				<view class="text-black text-bold text-lg">法治基地参观</view>
 				<view class="text-gray">预约参观法治基地</view>
 			</view>
-		</view>
+		</view> -->
 
-	</view> -->
+	</view>
 </view>
 
 <view class="index-gray "></view>
diff --git a/SunshineLnsMinApp/project.config.json b/SunshineLnsMinApp/project.config.json
index 92c49a8..4177d79 100644
--- a/SunshineLnsMinApp/project.config.json
+++ b/SunshineLnsMinApp/project.config.json
@@ -23,7 +23,7 @@
 	"compileType": "miniprogram",
 	"libVersion": "2.10.1",
 	"appid": "wx50bea0a98be5935d",
-	"projectname": "nsjc02",
+	"projectname": "nsjc",
 	"isGameTourist": false,
 	"simulatorType": "wechat",
 	"simulatorPluginLibVersion": {},
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.js b/SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.js
new file mode 100644
index 0000000..2c08b5f
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.js
@@ -0,0 +1 @@
+"use strict";var _baseComponent=_interopRequireDefault(require("../helpers/baseComponent")),_styleToCssString=_interopRequireDefault(require("../helpers/styleToCssString"));function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var ENTER="enter",ENTERING="entering",ENTERED="entered",EXIT="exit",EXITING="exiting",EXITED="exited",UNMOUNTED="unmounted",TRANSITION="transition",ANIMATION="animation",TIMEOUT=1e3/60,defaultClassNames={enter:"",enterActive:"",enterDone:"",exit:"",exitActive:"",exitDone:""};(0,_baseComponent.default)({properties:{in:{type:Boolean,value:!1,observer:function(t){this.data.isMounting&&this.updated(t)}},classNames:{type:null,value:defaultClassNames},duration:{type:null,value:null},type:{type:String,value:TRANSITION},appear:{type:Boolean,value:!1},enter:{type:Boolean,value:!0},exit:{type:Boolean,value:!0},mountOnEnter:{type:Boolean,value:!0},unmountOnExit:{type:Boolean,value:!0},wrapCls:{type:String,value:""},wrapStyle:{type:[String,Object],value:"",observer:function(t){this.setData({extStyle:(0,_styleToCssString.default)(t)})}},disableScroll:{type:Boolean,value:!1}},data:{animateCss:"",animateStatus:EXITED,isMounting:!1,extStyle:""},methods:{addEventListener:function(){var t=this.data.animateStatus,e=this.getTimeouts(),a=e.enter,n=e.exit;t===ENTERING&&!a&&this.data.enter&&this.performEntered(),t===EXITING&&!n&&this.data.exit&&this.performExited()},onTransitionEnd:function(){this.data.type===TRANSITION&&this.addEventListener()},onAnimationEnd:function(){this.data.type===ANIMATION&&this.addEventListener()},updateStatus:function(t,e){var a=1<arguments.length&&void 0!==e&&e;null!==t&&(this.cancelNextCallback(),this.isAppearing=a,t===ENTERING?this.performEnter():this.performExit())},performEnter:function(){var t=this,e=this.getClassNames(ENTER),a=e.className,n=e.activeClassName,i=this.getTimeouts().enter,s={animateStatus:ENTER,animateCss:a},r={animateStatus:ENTERING,animateCss:"".concat(a," ").concat(n)};if(!this.isAppearing&&!this.data.enter)return this.performEntered();this.safeSetData(s,function(){t.triggerEvent("change",{animateStatus:ENTER}),t.triggerEvent(ENTER,{isAppearing:t.isAppearing}),t.delayHandler(TIMEOUT,function(){t.safeSetData(r,function(){t.triggerEvent("change",{animateStatus:ENTERING}),t.triggerEvent(ENTERING,{isAppearing:t.isAppearing}),i&&t.delayHandler(i,t.performEntered)})})})},performEntered:function(){var t=this,e=this.getClassNames(ENTER).doneClassName,a={animateStatus:ENTERED,animateCss:e};this.safeSetData(a,function(){t.triggerEvent("change",{animateStatus:ENTERED}),t.triggerEvent(ENTERED,{isAppearing:t.isAppearing})})},performExit:function(){var t=this,e=this.getClassNames(EXIT),a=e.className,n=e.activeClassName,i=this.getTimeouts().exit,s={animateStatus:EXIT,animateCss:a},r={animateStatus:EXITING,animateCss:"".concat(a," ").concat(n)};if(!this.data.exit)return this.performExited();this.safeSetData(s,function(){t.triggerEvent("change",{animateStatus:EXIT}),t.triggerEvent(EXIT),t.delayHandler(TIMEOUT,function(){t.safeSetData(r,function(){t.triggerEvent("change",{animateStatus:EXITING}),t.triggerEvent(EXITING),i&&t.delayHandler(i,t.performExited)})})})},performExited:function(){var t=this,e=this.getClassNames(EXIT).doneClassName,a={animateStatus:EXITED,animateCss:e};this.safeSetData(a,function(){t.triggerEvent("change",{animateStatus:EXITED}),t.triggerEvent(EXITED),t.data.unmountOnExit&&t.setData({animateStatus:UNMOUNTED},function(){t.triggerEvent("change",{animateStatus:UNMOUNTED})})})},getClassNames:function(t){var e=this.data.classNames;return{className:"string"!=typeof e?e[t]:"".concat(e,"-").concat(t),activeClassName:"string"!=typeof e?e["".concat(t,"Active")]:"".concat(e,"-").concat(t,"-active"),doneClassName:"string"!=typeof e?e["".concat(t,"Done")]:"".concat(e,"-").concat(t,"-done")}},getTimeouts:function(){var t=this.data.duration;return null!==t&&"object"===_typeof(t)?{enter:t.enter,exit:t.exit}:"number"==typeof t?{enter:t,exit:t}:{}},updated:function(t){var e=this,a=(this.pendingData||this.data).animateStatus,n=null;t?(a===UNMOUNTED&&(a=EXITED,this.setData({animateStatus:EXITED},function(){e.triggerEvent("change",{animateStatus:EXITED})})),a!==ENTER&&a!==ENTERING&&a!==ENTERED&&(n=ENTERING)):a!==ENTER&&a!==ENTERING&&a!==ENTERED||(n=EXITING),this.updateStatus(n)},delayHandler:function(t,e){t&&(this.setNextCallback(e),setTimeout(this.nextCallback,t))},onTap:function(){this.triggerEvent("click")},noop:function(){}},attached:function(){var t=this,e=null,a=null;this.data.in?this.data.appear?(e=EXITED,a=ENTERING):e=ENTERED:e=this.data.unmountOnExit||this.data.mountOnEnter?UNMOUNTED:EXITED,this.safeSetData({animateStatus:e,isMounting:!0},function(){t.triggerEvent("change",{animateStatus:e}),t.updateStatus(a,!0)})}});
\ No newline at end of file
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.json b/SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.json
new file mode 100644
index 0000000..fba482a
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.json
@@ -0,0 +1,3 @@
+{
+    "component": true
+}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.wxml b/SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.wxml
new file mode 100644
index 0000000..707dce9
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.wxml
@@ -0,0 +1,3 @@
+<view class="wux-class {{ wrapCls }} {{ animateCss }}" bindtap="onTap" catchtouchmove="{{ disableScroll ? 'noop' : '' }}" bindtransitionend="onTransitionEnd" bindanimationend="onAnimationEnd" wx:if="{{ animateStatus !== 'unmounted' }}" style="{{ extStyle }}">
+    <slot></slot>
+</view>
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.wxss b/SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.wxss
new file mode 100644
index 0000000..936cd3d
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/animation-group/index.wxss
@@ -0,0 +1 @@
+.wux-animate--fadeIn-enter{transition:opacity .3s;opacity:0}.wux-animate--fadeIn-enter-active,.wux-animate--fadeIn-enter-done{opacity:1}.wux-animate--fadeIn-exit{transition:opacity .3s;opacity:1}.wux-animate--fadeIn-exit-active,.wux-animate--fadeIn-exit-done{opacity:0}.wux-animate--fadeInDown-enter{transition:opacity .3s,transform .3s;opacity:0;transform:translate3d(0,-100%,0)}.wux-animate--fadeInDown-enter-active,.wux-animate--fadeInDown-enter-done{opacity:1;transform:none}.wux-animate--fadeInDown-exit{transition:opacity .3s,transform .3s;opacity:1;transform:none}.wux-animate--fadeInDown-exit-active,.wux-animate--fadeInDown-exit-done{opacity:0;transform:translate3d(0,-100%,0)}.wux-animate--fadeInLeft-enter{transition:opacity .3s,transform .3s;opacity:0;transform:translate3d(-100%,0,0)}.wux-animate--fadeInLeft-enter-active,.wux-animate--fadeInLeft-enter-done{opacity:1;transform:none}.wux-animate--fadeInLeft-exit{transition:opacity .3s,transform .3s;opacity:1;transform:none}.wux-animate--fadeInLeft-exit-active,.wux-animate--fadeInLeft-exit-done{opacity:0;transform:translate3d(-100%,0,0)}.wux-animate--fadeInRight-enter{transition:opacity .3s,transform .3s;opacity:0;transform:translate3d(100%,0,0)}.wux-animate--fadeInRight-enter-active,.wux-animate--fadeInRight-enter-done{opacity:1;transform:none}.wux-animate--fadeInRight-exit{transition:opacity .3s,transform .3s;opacity:1;transform:none}.wux-animate--fadeInRight-exit-active,.wux-animate--fadeInRight-exit-done{opacity:0;transform:translate3d(100%,0,0)}.wux-animate--fadeInUp-enter{transition:opacity .3s,transform .3s;opacity:0;transform:translate3d(0,100%,0)}.wux-animate--fadeInUp-enter-active,.wux-animate--fadeInUp-enter-done{opacity:1;transform:none}.wux-animate--fadeInUp-exit{transition:opacity .3s,transform .3s;opacity:1;transform:none}.wux-animate--fadeInUp-exit-active,.wux-animate--fadeInUp-exit-done{opacity:0;transform:translate3d(0,100%,0)}.wux-animate--slideInUp-enter{transition:transform .3s;transform:translate3d(0,100%,0);visibility:visible}.wux-animate--slideInUp-enter-active,.wux-animate--slideInUp-enter-done{transform:translateZ(0)}.wux-animate--slideInUp-exit{transition:transform .3s;transform:translateZ(0)}.wux-animate--slideInUp-exit-active,.wux-animate--slideInUp-exit-done{transform:translate3d(0,100%,0);visibility:visible}.wux-animate--slideInDown-enter{transition:transform .3s;transform:translate3d(0,-100%,0);visibility:visible}.wux-animate--slideInDown-enter-active,.wux-animate--slideInDown-enter-done{transform:translateZ(0)}.wux-animate--slideInDown-exit{transition:transform .3s;transform:translateZ(0)}.wux-animate--slideInDown-exit-active,.wux-animate--slideInDown-exit-done{transform:translate3d(0,-100%,0);visibility:visible}.wux-animate--slideInLeft-enter{transition:transform .3s;transform:translate3d(-100%,0,0);visibility:visible}.wux-animate--slideInLeft-enter-active,.wux-animate--slideInLeft-enter-done{transform:translateZ(0)}.wux-animate--slideInLeft-exit{transition:transform .3s;transform:translateZ(0)}.wux-animate--slideInLeft-exit-active,.wux-animate--slideInLeft-exit-done{transform:translate3d(-100%,0,0);visibility:visible}.wux-animate--slideInRight-enter{transition:transform .3s;transform:translate3d(100%,0,0);visibility:visible}.wux-animate--slideInRight-enter-active,.wux-animate--slideInRight-enter-done{transform:none}.wux-animate--slideInRight-exit{transition:transform .3s;transform:none}.wux-animate--slideInRight-exit-active,.wux-animate--slideInRight-exit-done{transform:translate3d(100%,0,0);visibility:visible}.wux-animate--zoom-enter{transition:all .3s cubic-bezier(.215,.61,.355,1);opacity:.01;transform:scale(.75)}.wux-animate--zoom-enter-active,.wux-animate--zoom-enter-done{opacity:1;transform:none}.wux-animate--zoom-exit{transition:all .25s linear;transform:none}.wux-animate--zoom-exit-active,.wux-animate--zoom-exit-done{opacity:.01;transform:scale(.75)}.wux-animate--punch-enter{transition:all .3s cubic-bezier(.215,.61,.355,1);opacity:.01;transform:scale(1.35)}.wux-animate--punch-enter-active,.wux-animate--punch-enter-done{opacity:1;transform:none}.wux-animate--punch-exit{transition:all .25s linear;transform:none}.wux-animate--punch-exit-active,.wux-animate--punch-exit-done{opacity:.01;transform:scale(1.35)}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.js b/SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.js
new file mode 100644
index 0000000..2f7b066
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.js
@@ -0,0 +1 @@
+"use strict";var _baseComponent=_interopRequireDefault(require("../helpers/baseComponent"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(0,_baseComponent.default)({properties:{prefixCls:{type:String,value:"wux-backdrop"},transparent:{type:Boolean,value:!1},zIndex:{type:Number,value:1e3},classNames:{type:null,value:"wux-animate--fadeIn"}},computed:{classes:["prefixCls, transparent",function(e,t){return{wrap:t?"".concat(e,"--transparent"):e}}]},methods:{retain:function(){"number"==typeof this.backdropHolds&&this.backdropHolds||(this.backdropHolds=0),this.backdropHolds=this.backdropHolds+1,1===this.backdropHolds&&this.setData({in:!0})},release:function(){1===this.backdropHolds&&this.setData({in:!1}),this.backdropHolds=Math.max(0,this.backdropHolds-1)},onClick:function(){this.triggerEvent("click")}}});
\ No newline at end of file
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.json b/SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.json
new file mode 100644
index 0000000..9b9e7ab
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.json
@@ -0,0 +1,6 @@
+{
+    "component": true,
+    "usingComponents": {
+        "wux-animation-group": "../animation-group/index"
+    }
+}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.wxml b/SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.wxml
new file mode 100644
index 0000000..d6ee398
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.wxml
@@ -0,0 +1 @@
+<wux-animation-group wux-class="{{ classes.wrap }}" in="{{ in }}" classNames="{{ classNames }}" bind:click="onClick" wrapStyle="{{ { zIndex } }}" disableScroll />
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.wxss b/SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.wxss
new file mode 100644
index 0000000..63310d6
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/backdrop/index.wxss
@@ -0,0 +1 @@
+.wux-backdrop{background:rgba(0,0,0,.4)}.wux-backdrop,.wux-backdrop--transparent{position:fixed;z-index:1000;top:0;right:0;left:0;bottom:0}.wux-backdrop--transparent{background:0 0}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.js b/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.js
new file mode 100644
index 0000000..1ee7eaf
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.js
@@ -0,0 +1 @@
+"use strict";var _baseComponent=_interopRequireDefault(require("../helpers/baseComponent")),_classNames=_interopRequireDefault(require("../helpers/classNames")),_shallowEqual=_interopRequireDefault(require("../helpers/shallowEqual")),_props=require("./props"),_utils=require("./utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function ownKeys(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)}return a}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(a,!0).forEach(function(e){_defineProperty(t,e,a[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):ownKeys(a).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,a=new Array(e.length);t<e.length;t++)a[t]=e[t];return a}}function _defineProperty(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}(0,_baseComponent.default)({properties:_props.props,data:{inputValue:[],cols:[],fieldNames:_props.defaultFieldNames},observers:_defineProperty({},"value, options",function(e,t){var a=Object.assign({},_props.defaultFieldNames,this.data.defaultFieldNames),r=(0,_utils.getRealCols)(t,a);(0,_shallowEqual.default)(this.data.cols,r)||this.setData({cols:r}),this.setValue(e,!0)}),methods:{updated:function(e,t){this.data.inputValue===e&&!t||this.setData({inputValue:e})},setValue:function(e,t){var a=this.getValue(e).value;this.updated(a,t)},getValue:function(e,t){var a=0<arguments.length&&void 0!==e?e:this.data.inputValue,r=1<arguments.length&&void 0!==t?t:this.data.cols,n=this.data.fieldNames,o=(0,_utils.getRealValues)(a,r,n),i=_toConsumableArray(o),l=(0,_utils.getIndexesFromValues)(o,r,n);return{value:o,displayValue:(0,_utils.getLabelsFromIndexes)(l,r,n.label),selectedIndex:l,selectedValue:i,cols:r}},onChange:function(e,t,a){var r=_toConsumableArray(this.data.inputValue);r[e]=t,a&&this.triggerEvent(a,_objectSpread({},this.getValue(r),{index:e}))},onBeforeChange:function(e){var t=e.detail.value,a=e.currentTarget.dataset.index;this.onChange(a,t,"beforeChange")},onValueChange:function(e){var t=e.detail.value,a=e.currentTarget.dataset.index;this.onChange(a,t,"valueChange")},onScrollChange:function(e){var t=e.detail.value,a=e.currentTarget.dataset.index;this.onChange(a,t,"scrollChange")}},attached:function(){var e=this.data,t=e.value,a=e.options,r=Object.assign({},_props.defaultFieldNames,this.data.defaultFieldNames),n=(0,_utils.getRealCols)(a,r);this.setData({cols:n,fieldNames:r}),this.setValue(t)}});
\ No newline at end of file
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.json b/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.json
new file mode 100644
index 0000000..c55752a
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.json
@@ -0,0 +1,7 @@
+{
+    "component": true,
+    "usingComponents": {
+    	"wux-picker-view": "../picker-view/index",
+        "wux-spin": "../spin/index"
+    }
+}
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.wxml b/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.wxml
new file mode 100644
index 0000000..c144a1f
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.wxml
@@ -0,0 +1,26 @@
+<wux-spin nested spinning="{{ loading }}">
+    <view class="wux-class {{ prefixCls }}" data-picker-value="{{ inputValue }}">
+        <wux-picker-view
+            wx:for="{{ cols }}"
+            wx:for-item="col"
+            wx:key="index"
+            prefixCls="{{ pickerPrefixCls }}"
+            value="{{ inputValue[index] }}"
+            controlled
+            itemHeight="{{ itemHeight }}"
+            itemStyle="{{ itemStyle }}"
+            indicatorStyle="{{ indicatorStyle }}"
+            indicatorClass="{{ indicatorClass }}"
+            maskStyle="{{ maskStyle }}"
+            maskClass="{{ maskClass }}"
+            labelAlign="{{ labelAlign }}"
+            defaultFieldNames="{{ fieldNames }}"
+            options="{{ col }}"
+            data-index="{{ index }}"
+            style="{{ 'width: ' + 100 / cols.length + '%' }}"
+            bind:beforeChange="onBeforeChange"
+            bind:valueChange="onValueChange"
+            bind:scrollChange="onScrollChange"
+        />
+    </view>
+</wux-spin>
\ No newline at end of file
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.wxss b/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.wxss
new file mode 100644
index 0000000..c4a2275
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/index.wxss
@@ -0,0 +1 @@
+.wux-picker{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row}
\ No newline at end of file
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/props.js b/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/props.js
new file mode 100644
index 0000000..37b0d57
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/props.js
@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.props=exports.defaultFieldNames=void 0;var picker=_interopRequireWildcard(require("../picker-view/props"));function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var o=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,t):{};o.get||o.set?Object.defineProperty(r,t,o):r[t]=e[t]}return r.default=e,r}function ownKeys(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(r);e&&(o=o.filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(t,!0).forEach(function(e){_defineProperty(r,e,t[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ownKeys(t).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))})}return r}function _defineProperty(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var defaultFieldNames=picker.defaultFieldNames;exports.defaultFieldNames=defaultFieldNames;var props=_objectSpread({},picker.props,{prefixCls:{type:String,value:"wux-picker"},pickerPrefixCls:{type:String,value:"wux-picker-col"},value:{type:Array,value:[]}});exports.props=props;
\ No newline at end of file
diff --git a/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/utils.js b/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/utils.js
new file mode 100644
index 0000000..ac378a6
--- /dev/null
+++ b/SunshineLnsMinApp/templeteDist/wuxDist/multi-picker-view/utils.js
@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _utils=require("../picker-view/utils");Object.keys(_utils).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _utils[e]}})});
\ No newline at end of file

--
Gitblit v1.8.0