Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/H5/threeSide
| | |
| | | "navigationBarTitleText": "添加办理进度", |
| | | "navigationBarBackgroundColor": "#ffffff" |
| | | } |
| | | }, |
| | | { |
| | | },{ |
| | | "path": "pages/work-detail/work-detail", |
| | | "style": { |
| | | "navigationBarTitleText": "诉求详情", |
| | | "navigationBarBackgroundColor": "#ffffff", |
| | | "navigationStyle": "custom" |
| | | "navigationStyle": "custom"} |
| | | }, |
| | | { |
| | | "path": "pages/problemReporting/problemReporting", |
| | | "style": { |
| | | "navigationBarTitleText": "问题上报", |
| | | "navigationBarBackgroundColor": "#ffffff" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/dispatchWorkOrder/dispatchWorkOrder", |
| | | "style": { |
| | | "navigationBarTitleText": "工单下派", |
| | | "navigationBarBackgroundColor": "#ffffff" |
| | | } |
| | | } |
| | | ], |
New file |
| | |
| | | <template> |
| | | <view class="problem-report-page"> |
| | | <view class="info-cards"> |
| | | <view class="info-top"> |
| | | <view class="num">诉求号:7843523454</view> |
| | | <view class="status">正在办理</view> |
| | | </view> |
| | | |
| | | <view class="address"> |
| | | <view class="adr">江苏省常州市溧阳市牛顿大道172号</view> |
| | | <image src="/static/position@2x.png" class="w-31 h-31" mode="aspectFill"></image> |
| | | </view> |
| | | |
| | | <view class="table-head"> |
| | | <view class="type flex1">问题类型</view> |
| | | <view class="person flex1">群众</view> |
| | | <view class="phone flex1">联系电话</view> |
| | | </view> |
| | | |
| | | <view class="table-body"> |
| | | <view class="table-item"> |
| | | <view class="type-tip flex1"> |
| | | <view class="tip"> |
| | | 教育 |
| | | </view> |
| | | </view> |
| | | <view class="person-item flex1">沙振</view> |
| | | <view class="phone-item flex1">14225874426</view> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | |
| | | <view class="input-card"> |
| | | <view class="title mb-27"> |
| | | 上报说明 |
| | | </view> |
| | | <u--textarea style="background-color:rgba(248, 248, 248, 1);border: unset;padding:25rpx 30.77rpx;" |
| | | height="365.38rpx" v-model="content" placeholder="请输入内容"></u--textarea> |
| | | </view> |
| | | |
| | | <view class="notice-tip flex a-center "> |
| | | <image src="/static/warnng@2x.png" class="w-31 h-31 mr-15" mode="aspectFill"></image> |
| | | 提交后会由上级部门进行审核,请留意审核结果 |
| | | </view> |
| | | <view class="btn">下派至下级部门</view> |
| | | |
| | | <u-popup round="19rpx" :show="showPop" mode="center" @close="close" @open="open"> |
| | | <view class="popup-content"> |
| | | <view class="title-pop">请选择下派单位</view> |
| | | <view class="pop-label">社区:</view> |
| | | <view class="pop-select"> |
| | | 请选择 |
| | | </view> |
| | | |
| | | <view class="botton-btn"> |
| | | <view class="cancle">取消</view> |
| | | <view class="sure">确定</view> |
| | | </view> |
| | | </view> |
| | | </u-popup> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | content: '', |
| | | showPop: false, |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | |
| | | |
| | | <style lang="scss" scoped> |
| | | .problem-report-page { |
| | | padding-top: 38.46rpx; |
| | | margin: 0 30.77rpx; |
| | | |
| | | .info-cards { |
| | | padding: 21.15rpx 26.92rpx 36.54rpx 26.92rpx; |
| | | background: #FFFFFF; |
| | | box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1); |
| | | background: linear-gradient(180deg, #FFDCDB 0%, rgba(255, 255, 255, 0) 100%); |
| | | border-radius: 19rpx; |
| | | |
| | | .info-top { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | |
| | | .num { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 23rpx; |
| | | color: rgba(0, 0, 0, 0.88); |
| | | line-height: 33rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .status { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 23rpx; |
| | | color: #FF4948; |
| | | line-height: 33rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | } |
| | | |
| | | .address { |
| | | margin: 32.69rpx 13.46rpx 30.77rpx 13.46rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | // height: 106rpx; |
| | | background: linear-gradient(270deg, rgba(255, 241, 0, 0.5) 0%, rgba(255, 249, 172, 0.25) 48%, rgba(255, 255, 255, 0.2) 100%, #FFFFFF 100%); |
| | | box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1); |
| | | border-radius: 19rpx; |
| | | align-items: center; |
| | | padding: 38.46rpx 26.92rpx 36.54rpx 26.92rpx; |
| | | |
| | | .adr { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #000000; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | } |
| | | |
| | | .table-head { |
| | | display: flex; |
| | | text-align: center; |
| | | |
| | | .type { |
| | | text-align: left; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #000000; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .person { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #000000; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .phone { |
| | | font-family: PingFang-SC, PingFang-SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #000000; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | } |
| | | |
| | | .table-item { |
| | | display: flex; |
| | | display: flex; |
| | | text-align: center; |
| | | margin-top: 8rpx; |
| | | |
| | | .tip { |
| | | width: calc(108rpx - 30.77rpx - 30.77rpx); |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 400; |
| | | font-size: 23rpx; |
| | | color: #FAAD14; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | padding: 1.92rpx 30.77rpx; |
| | | background: #FFFBE6; |
| | | box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1); |
| | | border-radius: 8rpx; |
| | | border: 2rpx solid #FFF1B8; |
| | | } |
| | | |
| | | .person-item { |
| | | font-family: PingFang-SC, PingFang-SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #000000; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .phone-item { |
| | | font-family: PingFang-SC, PingFang-SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #000000; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | .input-card { |
| | | // width: 688rpx; |
| | | min-height: calc(504rpx - 34.62rpx - 38.46rpx); |
| | | padding: 34.62rpx 30.77rpx 38.46rpx 30.77rpx; |
| | | border-radius: 19rpx; |
| | | background: #FFFFFF; |
| | | box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1); |
| | | margin-top: 38.46rpx; |
| | | |
| | | .title { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 27rpx; |
| | | color: rgba(0, 0, 0, 0.88); |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | } |
| | | |
| | | .notice-tip { |
| | | margin-top: 38.46rpx; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 400; |
| | | font-size: 27rpx; |
| | | color: #FF4948; |
| | | line-height: 42rpx; |
| | | } |
| | | |
| | | |
| | | .btn { |
| | | position: fixed; |
| | | bottom: calc(38.46rpx + env(safe-area-inset-bottom)); |
| | | left: 0; |
| | | right: 0; |
| | | width: 688rpx; |
| | | height: 96rpx; |
| | | background: linear-gradient(270deg, #FC8D55 0%, #FF4948 100%); |
| | | border-radius: 48rpx; |
| | | margin: 0 auto; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 35rpx; |
| | | color: #FFFFFF; |
| | | } |
| | | } |
| | | |
| | | .popup-content { |
| | | background: url('/static/pop@2x.png') no-repeat center center; |
| | | width: 576.92rpx; |
| | | height: 425rpx; |
| | | border-radius: 19rpx; |
| | | |
| | | .title-pop { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 35rpx; |
| | | color: rgba(0, 0, 0, 0.8); |
| | | line-height: 35rpx; |
| | | text-align: center; |
| | | margin-top: 46.15rpx; |
| | | } |
| | | |
| | | .pop-label { |
| | | font-family: PingFang-SC, PingFang-SC; |
| | | font-weight: 500; |
| | | font-size: 31rpx; |
| | | color: rgba(0, 0, 0, 0.6); |
| | | margin-top: 46.15rpx; |
| | | margin-left: 64.54rpx; |
| | | } |
| | | |
| | | .pop-select { |
| | | height: 77rpx; |
| | | background: #FFFFFF; |
| | | border-radius: 15rpx; |
| | | border: 2rpx solid rgba(0, 0, 0, 0.15); |
| | | margin-left: 61.54rpx; |
| | | margin-top: 19.23rpx; |
| | | margin-right: 61.54rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | padding-left: 30.77rpx; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 400; |
| | | font-size: 31rpx; |
| | | color: rgba(0, 0, 0, 0.24); |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .botton-btn { |
| | | display: flex; |
| | | margin-top: 44.23rpx; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .cancle { |
| | | width: 212rpx; |
| | | height: 77rpx; |
| | | border-radius: 48rpx; |
| | | border: 2rpx solid rgba(0, 0, 0, 0.8); |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: rgba(0, 0, 0, 0.8); |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | margin-right: 32.69rpx; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .sure { |
| | | width: 212rpx; |
| | | height: 77rpx; |
| | | background: linear-gradient(270deg, #FC8D55 0%, #FF4948 100%); |
| | | border-radius: 48rpx; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 27rpx; |
| | | color: #FFFFFF; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <view class="problem-report-page"> |
| | | <view class="info-cards"> |
| | | <view class="info-top"> |
| | | <view class="num">诉求号:7843523454</view> |
| | | <view class="status">正在办理</view> |
| | | </view> |
| | | |
| | | <view class="address"> |
| | | <view class="adr">江苏省常州市溧阳市牛顿大道172号</view> |
| | | <image src="/static/position@2x.png" class="w-31 h-31" mode="aspectFill"></image> |
| | | </view> |
| | | |
| | | <view class="table-head"> |
| | | <view class="type flex1">问题类型</view> |
| | | <view class="person flex1">群众</view> |
| | | <view class="phone flex1">联系电话</view> |
| | | </view> |
| | | |
| | | <view class="table-body"> |
| | | <view class="table-item"> |
| | | <view class="type-tip flex1"> |
| | | <view class="tip"> |
| | | 教育 |
| | | </view> |
| | | </view> |
| | | <view class="person-item flex1">沙振</view> |
| | | <view class="phone-item flex1">14225874426</view> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | |
| | | <view class="input-card"> |
| | | <view class="title mb-27"> |
| | | 上报说明 |
| | | </view> |
| | | <u--textarea style="background-color:rgba(248, 248, 248, 1);border: unset;padding:25rpx 30.77rpx;" |
| | | height="365.38rpx" v-model="content" placeholder="请输入内容"></u--textarea> |
| | | </view> |
| | | |
| | | <view class="notice-tip flex a-center "> |
| | | <image src="/static/warnng@2x.png" class="w-31 h-31 mr-15" mode="aspectFill"></image> |
| | | 提交后会由上级部门进行审核,请留意审核结果 |
| | | </view> |
| | | |
| | | <view class="btn">提交至上级部门</view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | content: '', |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | |
| | | |
| | | <style lang="scss" scoped> |
| | | .problem-report-page { |
| | | padding-top: 38.46rpx; |
| | | margin: 0 30.77rpx; |
| | | |
| | | .info-cards { |
| | | padding: 21.15rpx 26.92rpx 36.54rpx 26.92rpx; |
| | | background: #FFFFFF; |
| | | box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1); |
| | | background: linear-gradient(180deg, #FFDCDB 0%, rgba(255, 255, 255, 0) 100%); |
| | | border-radius: 19rpx; |
| | | |
| | | .info-top { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | |
| | | .num { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 23rpx; |
| | | color: rgba(0, 0, 0, 0.88); |
| | | line-height: 33rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .status { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 23rpx; |
| | | color: #FF4948; |
| | | line-height: 33rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | } |
| | | |
| | | .address { |
| | | margin: 32.69rpx 13.46rpx 30.77rpx 13.46rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | // height: 106rpx; |
| | | background: linear-gradient(270deg, rgba(255, 241, 0, 0.5) 0%, rgba(255, 249, 172, 0.25) 48%, rgba(255, 255, 255, 0.2) 100%, #FFFFFF 100%); |
| | | box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1); |
| | | border-radius: 19rpx; |
| | | align-items: center; |
| | | padding: 38.46rpx 26.92rpx 36.54rpx 26.92rpx; |
| | | |
| | | .adr { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #000000; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | } |
| | | |
| | | .table-head { |
| | | display: flex; |
| | | text-align: center; |
| | | |
| | | .type { |
| | | text-align: left; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #000000; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .person { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #000000; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .phone { |
| | | font-family: PingFang-SC, PingFang-SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #000000; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | } |
| | | |
| | | .table-item { |
| | | display: flex; |
| | | display: flex; |
| | | text-align: center; |
| | | margin-top: 8rpx; |
| | | |
| | | .tip { |
| | | width: calc(108rpx - 30.77rpx - 30.77rpx); |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 400; |
| | | font-size: 23rpx; |
| | | color: #FAAD14; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | padding: 1.92rpx 30.77rpx; |
| | | background: #FFFBE6; |
| | | box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1); |
| | | border-radius: 8rpx; |
| | | border: 2rpx solid #FFF1B8; |
| | | } |
| | | |
| | | .person-item { |
| | | font-family: PingFang-SC, PingFang-SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #000000; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .phone-item { |
| | | font-family: PingFang-SC, PingFang-SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #000000; |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | .input-card { |
| | | // width: 688rpx; |
| | | min-height: calc(504rpx - 34.62rpx - 38.46rpx); |
| | | padding: 34.62rpx 30.77rpx 38.46rpx 30.77rpx; |
| | | border-radius: 19rpx; |
| | | background: #FFFFFF; |
| | | box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1); |
| | | margin-top: 38.46rpx; |
| | | |
| | | .title { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 27rpx; |
| | | color: rgba(0, 0, 0, 0.88); |
| | | line-height: 38rpx; |
| | | text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1); |
| | | } |
| | | } |
| | | |
| | | .notice-tip { |
| | | margin-top: 38.46rpx; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 400; |
| | | font-size: 27rpx; |
| | | color: #FF4948; |
| | | line-height: 42rpx; |
| | | } |
| | | |
| | | |
| | | .btn { |
| | | position: fixed; |
| | | bottom: calc(38.46rpx + env(safe-area-inset-bottom)); |
| | | left: 0; |
| | | right: 0; |
| | | width: 688rpx; |
| | | height: 96rpx; |
| | | background: linear-gradient(270deg, #FC8D55 0%, #FF4948 100%); |
| | | border-radius: 48rpx; |
| | | margin: 0 auto; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 35rpx; |
| | | color: #FFFFFF; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | path: '/setting', |
| | | layout: false, |
| | | name:'系统设置', |
| | | routes: [ |
| | | { |
| | | name: '职位管理', |
| | | path: '/career', |
| | | component: './setting/career', |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | path: '/work-order', |
| | | layout: false, |
| | | name:'工单事项管理', |
| | | routes: [ |
| | | { |
| | | name: '工单事项配置', |
| | | path: '/configuration', |
| | | component: './work-order-settimg/configuration', |
| | | }, |
| | | ], |
| | | }, |
| | | |
| | | ]; |
| | |
| | | "engines": { |
| | | "node": ">=12.0.0" |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | import { Form, Input, Modal,Button } from 'antd'; |
| | | import { forwardRef, useImperativeHandle, useState } from 'react'; |
| | | |
| | | const formItemLayout = { |
| | | labelCol: { span: 7 }, |
| | | wrapperCol: { span: 12 }, |
| | | }; |
| | | |
| | | const AddEditView = ({ visible, onSave, onUpdate, onCancel }, ref) => { |
| | | const [form] = Form.useForm(); |
| | | const [editData, setEditData] = useState({}); |
| | | const [rolesList, setRolesList] = useState(); |
| | | |
| | | /** |
| | | * 确定按钮事件 |
| | | */ |
| | | const okHandle = () => { |
| | | form.validateFields().then((values) => { |
| | | if (editData.deptId) { |
| | | values.deptId = editData.deptId; |
| | | onUpdate(values); |
| | | } else { |
| | | onSave(values); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | useImperativeHandle(ref, () => { |
| | | return { |
| | | refreshData: (data) => { |
| | | form.resetFields(); |
| | | form.setFieldsValue(data); |
| | | setEditData(data); |
| | | }, |
| | | clean: () => { |
| | | form.resetFields(); |
| | | }, |
| | | }; |
| | | }); |
| | | |
| | | return ( |
| | | <Modal |
| | | getContainer={false} |
| | | width="25%" |
| | | destroyOnClose |
| | | title={editData.deptId ? '编辑职位' : '添加职位'} |
| | | open={visible} |
| | | onCancel={() => onCancel(false)} |
| | | footer={[ |
| | | <Button key="back" onClick={() => onCancel(false)}> |
| | | 关闭 |
| | | </Button>, |
| | | <Button key="submit" type="primary" onClick={okHandle}> |
| | | 确认 |
| | | </Button> |
| | | ]} |
| | | > |
| | | <Form layout="horizontal" {...formItemLayout} form={form} initialValues={{ isAuctioneer: 1 }}> |
| | | <Form.Item |
| | | name="deptName" |
| | | required |
| | | label="职位名称" |
| | | rules={[{ required: true, message: '请输入职位名称' }]} |
| | | > |
| | | <Input placeholder="请输入职位名称" /> |
| | | </Form.Item> |
| | | </Form> |
| | | </Modal> |
| | | ); |
| | | }; |
| | | |
| | | export default forwardRef(AddEditView); |
New file |
| | |
| | | import { buildProTableDataSource, sendRequest, showDelConfirm } from '@/utils/antdUtils'; |
| | | import { PageContainer, ProTable } from '@ant-design/pro-components'; |
| | | import { Button, InputNumber, Select, Space } from 'antd'; |
| | | import { useRef, useState } from 'react'; |
| | | import { Access, useAccess } from 'umi'; |
| | | import AddAndEdit from './components/addAndEdit'; |
| | | import { add, edit, del, getList, updateStatus, resetPaswword } from './service'; |
| | | const Account = () => { |
| | | const actionRef = useRef(); |
| | | const addViewRef = useRef(); |
| | | const [modalVisible, handleModalVisible] = useState(false); |
| | | const access = useAccess(); |
| | | |
| | | const columns = [ |
| | | { |
| | | title: '职位名称', |
| | | dataIndex: 'deptName', |
| | | }, |
| | | { |
| | | title: '操作', |
| | | hideInSearch: true, |
| | | render: (text, record) => { |
| | | return ( |
| | | <Space> |
| | | { |
| | | !record.admin && |
| | | <Button |
| | | type="link" |
| | | onClick={() => { |
| | | addViewRef.current.refreshData(record); |
| | | handleModalVisible(true); |
| | | }} |
| | | > |
| | | 编辑 |
| | | </Button> |
| | | } |
| | | { |
| | | !record.admin && |
| | | <Button |
| | | type="link" |
| | | onClick={() => { |
| | | showDelConfirm(async () => { |
| | | let status = await sendRequest(del, record.deptId); |
| | | if (status) { |
| | | actionRef.current.reload(); |
| | | } |
| | | }, '确认删除所选信息吗?'); |
| | | }} |
| | | > |
| | | 删除 |
| | | </Button> |
| | | } |
| | | </Space> |
| | | ); |
| | | }, |
| | | }, |
| | | ]; |
| | | return ( |
| | | <div> |
| | | <PageContainer header={{ |
| | | breadcrumb: {}, |
| | | }}> |
| | | <ProTable |
| | | rowKey="id" |
| | | actionRef={actionRef} |
| | | columns={columns} |
| | | pagination={false} |
| | | request={async(params) => { |
| | | return await buildProTableDataSource(getList, params); |
| | | }} |
| | | toolBarRender={(action, selectRows) => [ |
| | | <Space> |
| | | <Button |
| | | type="primary" |
| | | onClick={() => { |
| | | addViewRef.current.refreshData({}); |
| | | handleModalVisible(true); |
| | | }} |
| | | > |
| | | 添加 |
| | | </Button> |
| | | </Space>, |
| | | ]} |
| | | /> |
| | | <AddAndEdit |
| | | ref={addViewRef} |
| | | visible={modalVisible} |
| | | onCancel={() => handleModalVisible(false)} |
| | | onSave={async (fileds) => { |
| | | const success = await sendRequest(add, fileds); |
| | | if (success) { |
| | | handleModalVisible(false); |
| | | actionRef.current.reload(); |
| | | } |
| | | }} |
| | | onUpdate={async (fileds) => { |
| | | const success = await sendRequest(edit, fileds); |
| | | if (success) { |
| | | handleModalVisible(false); |
| | | actionRef.current.reload(); |
| | | } |
| | | }} |
| | | /> |
| | | </PageContainer> |
| | | </div> |
| | | ); |
| | | }; |
| | | |
| | | export default Account; |
New file |
| | |
| | | import { request } from '@umijs/max'; |
| | | |
| | | // 分页获取部门列表 |
| | | export const getList = async (data) => { |
| | | return request(`/system/dept/list`, { |
| | | method: 'GET', |
| | | params:data |
| | | }); |
| | | } |
| | | |
| | | // 新增部门 |
| | | export const add = async (data) => { |
| | | return request('/system/dept', { |
| | | method: 'POST', |
| | | data, |
| | | }); |
| | | } |
| | | |
| | | // 修改部门 |
| | | export const edit = async (data) => { |
| | | return request('/system/dept', { |
| | | method: 'PUT', |
| | | data |
| | | }); |
| | | } |
| | | |
| | | // 删除部门管理 |
| | | export const del = async (data) => { |
| | | return request(`/system/dept/${data}`, { |
| | | method: 'DELETE', |
| | | }); |
| | | } |
| | | |
| | | |
New file |
| | |
| | | import { showDelConfirm } from '@/utils/antdUtils'; |
| | | import { PageContainer, ProTable } from '@ant-design/pro-components'; |
| | | import { Button, Space, Form, InputNumber, Card } from 'antd'; |
| | | import { useRef, useState, useEffect } from 'react'; |
| | | import { Access, useAccess } from 'umi'; |
| | | import { sendRequest } from '@/utils/antdUtils'; |
| | | |
| | | |
| | | // import AddAndEdit from './components/addAndEdit'; |
| | | // import { getConfig, saveConfig } from './service'; |
| | | const TabPane = Tabs.TabPane; |
| | | const Account = () => { |
| | | const actionRef = useRef(); |
| | | const addViewRef = useRef(); |
| | | const addViewRef1 = useRef(); |
| | | const [form] = Form.useForm(); |
| | | const [tab, setTab] = useState('1'); |
| | | const [modalVisible, handleModalVisible] = useState(false); |
| | | const [selectedRowKeys, setSelectedRowKeys] = useState([]); |
| | | const changeStatusRef = useRef(); |
| | | const [addWarnVisible, handleAddWarnVisible] = useState(false); |
| | | const { RangePicker } = DatePicker; |
| | | const [dataSource, setDataSource] = useState([]); |
| | | const [data, setData] = useState([]); |
| | | const access = useAccess(); |
| | | |
| | | useEffect(() => { |
| | | }, []) |
| | | |
| | | const save = () => { |
| | | form.validateFields().then(async (values) => { |
| | | |
| | | }); |
| | | }; |
| | | |
| | | |
| | | |
| | | return ( |
| | | <div> |
| | | <PageContainer |
| | | header={{ |
| | | title: '述求事项配置', |
| | | breadcrumb: {}, |
| | | }} |
| | | > |
| | | <Card> |
| | | <Form scrollToFirstError form={form}> |
| | | <Card> |
| | | <div><span style={{ fontSize: '14px', fontWeight: 600 }}>*诉求处理时间配置: |
| | | </span><span style={{ marginLeft: 8, color: '#a5a5a5' }}>超过时间未处理诉求,系统自动对该事件承办者发送短信提醒,并知会至上一级管理层进行督办。 |
| | | </span></div> |
| | | <Form.Item label="市级账号" name="isAuctioneer" rules={ |
| | | [{ required: true, message: '请输入市级账号' }] |
| | | }> |
| | | <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber> |
| | | </Form.Item> |
| | | |
| | | <Form.Item label="区县账号" name="isAuctioneer" rules={ |
| | | [{ required: true, message: '请输入区县账号' }] |
| | | }> |
| | | <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber> |
| | | </Form.Item> |
| | | |
| | | <Form.Item label="街道账号" name="isAuctioneer" rules={ |
| | | [{ required: true, message: '请输入街道账号' }] |
| | | }> |
| | | <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber> |
| | | </Form.Item> |
| | | <Form.Item label="社区账号" name="isAuctioneer" rules={ |
| | | [{ required: true, message: '请输入社区账号' }] |
| | | }> |
| | | <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber> |
| | | </Form.Item> |
| | | <Form.Item label="党员账号" name="isAuctioneer" rules={ |
| | | [{ required: true, message: '请输入党员账号' }] |
| | | }> |
| | | <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber> |
| | | </Form.Item> |
| | | </Card> |
| | | <Card> |
| | | <div><span style={{ fontSize: '14px', fontWeight: 600 }}>*时限临期提醒配置: |
| | | </span><span style={{ marginLeft: 8, color: '#a5a5a5' }}>超过时间未处理诉求,系统自动对该事件承办者发送短信提醒,并知会至上一级管理层进行督办。 |
| | | </span></div> |
| | | <Form.Item label="市级账号" name="isAuctioneer" rules={ |
| | | [{ required: true, message: '请输入市级账号' }] |
| | | }> |
| | | <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber> |
| | | </Form.Item> |
| | | |
| | | <Form.Item label="区县账号" name="isAuctioneer" rules={ |
| | | [{ required: true, message: '请输入区县账号' }] |
| | | }> |
| | | <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber> |
| | | </Form.Item> |
| | | |
| | | <Form.Item label="街道账号" name="isAuctioneer" rules={ |
| | | [{ required: true, message: '请输入街道账号' }] |
| | | }> |
| | | <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber> |
| | | </Form.Item> |
| | | <Form.Item label="社区账号" name="isAuctioneer" rules={ |
| | | [{ required: true, message: '请输入社区账号' }] |
| | | }> |
| | | <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber> |
| | | </Form.Item> |
| | | <Form.Item label="党员账号" name="isAuctioneer" rules={ |
| | | [{ required: true, message: '请输入党员账号' }] |
| | | }> |
| | | <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber> |
| | | </Form.Item> |
| | | </Card> |
| | | <Card> |
| | | <div><span style={{ fontSize: '14px', fontWeight: 600 }}>*诉求处理时间: |
| | | </span><span style={{ marginLeft: 8, color: '#a5a5a5' }}>超过时间未处理诉求,系统自动对该事件承办者发送短信提醒,并知会至上一级管理层进行督办。 |
| | | </span></div> |
| | | <Form.Item label="添加后处理时间" name="isAuctioneer" rules={ |
| | | [{ required: true, message: '请输入添加后处理时间' }] |
| | | }> |
| | | <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber> |
| | | </Form.Item> |
| | | </Card> |
| | | </Form> |
| | | </Card> |
| | | </PageContainer> |
| | | </div> |
| | | ); |
| | | }; |
| | | |
| | | export default Account; |