solution_detail.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. <template>
  2. <div v-if="detailData">
  3. <el-row>
  4. <el-col :span="24">企业认证审核</el-col>
  5. </el-row>
  6. <el-divider></el-divider>
  7. <el-row>
  8. <el-col :span="16">
  9. <el-image
  10. style="width: 50px; height: 50px"
  11. :src="detailData.companyInfo.logo"
  12. :fit="fit"></el-image>
  13. </el-col>
  14. <el-col :span="8">
  15. <el-button size="mini" @click="userinfo(detailData.verifying.uid)" type="info">用户信息</el-button>
  16. <el-button size="mini" @click="woinfo(detailData.verifying.uid)" type="info">主页</el-button>
  17. <el-button size="mini" @click="returnPage()" type="info">返回</el-button>
  18. </el-col>
  19. </el-row>
  20. <el-divider></el-divider>
  21. <el-row>
  22. <el-col :span="19">
  23. 企业认证
  24. </el-col>
  25. <el-col :span="5">
  26. <el-button size="mini">{{this.company_verify_status}}</el-button>
  27. <el-link @click="companyVerifyStatus(detailData.verifying.uid)" type="primary">查看详情</el-link>
  28. </el-col>
  29. </el-row>
  30. <el-divider></el-divider>
  31. <el-row>
  32. <el-col :span="19">
  33. 基本信息
  34. </el-col>
  35. </el-row>
  36. <el-divider></el-divider>
  37. <el-row>
  38. <el-col :span="2">
  39. <el-image
  40. style="width: 50px; height: 50px"
  41. :src="detailData.companyInfo.logo"
  42. :fit="fit"></el-image>
  43. </el-col>
  44. <el-col :span="22">
  45. {{detailData.companyInfo.applyInfo.name}}
  46. <br>
  47. <!-- {{detailData.companyInfo.applyInfo.province_name}}-{{detailData.companyInfo.applyInfo.city_name}}-->
  48. </el-col>
  49. </el-row>
  50. <br>
  51. <el-row>
  52. <el-col :span="2">
  53. 企业联系人
  54. </el-col>
  55. <el-col :span="22">
  56. </el-col>
  57. </el-row>
  58. <br>
  59. <el-row>
  60. <el-col :span="2">
  61. 联系方式
  62. </el-col>
  63. <el-col :span="22">
  64. {{detailData.companyInfo.applyInfo.phone}}
  65. </el-col>
  66. </el-row>
  67. <br>
  68. <el-row>
  69. <el-col :span="2">
  70. 职位
  71. </el-col>
  72. <el-col :span="22">
  73. </el-col>
  74. </el-row>
  75. <br>
  76. <el-row>
  77. <el-col :span="2">
  78. 企业介绍
  79. </el-col>
  80. <el-col :span="22">
  81. {{detailData.companyInfo.description}}
  82. </el-col>
  83. </el-row>
  84. <el-divider></el-divider>
  85. <el-row style=" box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)">
  86. <el-row style="padding: 5px">
  87. 该企业已认证解决方案
  88. </el-row>
  89. <el-row v-for="item in detailData.verifyList" :key="item.id" style="padding: 10px; box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)">
  90. <el-col :span="3">
  91. <el-image
  92. style="width: 100px; height: 100px"
  93. :src="item.images"
  94. :fit="fit"></el-image>
  95. </el-col>
  96. <el-col :span="15">
  97. <h3>{{item.title}}</h3>
  98. <br>
  99. <p>方案简介:{{item.description}}</p>
  100. <p>成功案例:{{item.successful_case_list}}</p>
  101. </el-col>
  102. <el-col :span="6">
  103. <p>当前状态 <el-button size="mini">{{item.status}}</el-button></p>
  104. <br>
  105. <p>
  106. 修改状态
  107. <el-button size="mini" @click="updateStatus(item)" type="info">不通过 </el-button>
  108. </p>
  109. </el-col>
  110. </el-row>
  111. </el-row>
  112. <br>
  113. <el-row style=" box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)">
  114. <el-row style="padding: 5px">
  115. 当前申请认证解决方案
  116. </el-row>
  117. <el-row style="padding: 10px; box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)">
  118. <el-col :span="3">
  119. <el-image
  120. style="width: 100px; height: 100px"
  121. :src="detailData.verifying.images"
  122. :fit="fit"></el-image>
  123. </el-col>
  124. <el-col :span="15">
  125. <h3>{{detailData.verifying.title}}</h3>
  126. <br>
  127. <p>方案简介:{{detailData.verifying.description}}</p>
  128. <p>成功案例:{{detailData.verifying.successful_case_list}}</p>
  129. </el-col>
  130. <el-col :span="6">
  131. <p>当前状态:{{detailData.verifying.status}}</p>
  132. </el-col>
  133. </el-row>
  134. </el-row>
  135. <br>
  136. <el-row>
  137. <el-radio @change="refuse()" v-model="radio" label="3">拒绝</el-radio>
  138. <el-radio @change="pass()" v-model="radio" label="2">通过</el-radio>
  139. </el-row>
  140. <br>
  141. <el-row>
  142. <h4 style="border-bottom: solid 1px brown">邮件内容</h4>
  143. <el-row v-if="show" id="emailRefuseInfo">
  144. <p>Hi,{{detailData.verifying.nickname}},您好!</p>
  145. <p>谢谢您的申请</p>
  146. <p>您的解决方案 {{detailData.verifying.title}} 暂时不符合我们的认证标准,主要原因是:</p>
  147. <el-input v-model="reason" placeholder="请输入内容"></el-input>
  148. <p>您可以满足以上要求后,继续申请认证.</p>
  149. <p>谢谢您的支持!</p>
  150. <p>程序员客栈敬上:)</p>
  151. </el-row>
  152. <el-row v-else id="emailPassInfo">
  153. <p>Hi,{{detailData.verifying.nickname}},您好!</p>
  154. <p>恭喜您的解决方案 {{detailData.verifying.title}} 通过审核!</p>
  155. <p>谢谢您的支持!</p>
  156. <p>程序员客栈敬上:)</p>
  157. </el-row>
  158. <br>
  159. <el-button @click="sendEmail(detailData.verifying)" size="mini" type="primary">确定并发送邮件</el-button>
  160. </el-row>
  161. <br>
  162. <el-row style="border-bottom: solid 3px green">
  163. 审核记录
  164. </el-row>
  165. <br>
  166. <el-row v-for="item in detailData.audit_record" :key="item.id" style=" box-shadow: 0 2px 4px #ccc, 0 0 6px #ccc">
  167. <h4 style="border-bottom: solid 1px brown;padding: 10px">{{item.status_name}}</h4>
  168. <p style="padding: 10px">邮件内容</p>
  169. <div v-html="item.audit_data" style="background-color: #ccc;padding: 10px">
  170. {{item.audit_data}}
  171. </div>
  172. </el-row>
  173. </div>
  174. </template>
  175. <script>
  176. export default {
  177. data() {
  178. return {
  179. id: '',
  180. detailData: '',
  181. radio: '3',
  182. reason:'',
  183. company_verify_status: '未认证',
  184. show:true
  185. }
  186. },
  187. mounted() {
  188. this.id = this.$route.query.id
  189. this.getDetail()
  190. },
  191. methods: {
  192. async getDetail() {
  193. const id = this.id;
  194. const page = 1;
  195. const data = {
  196. id,
  197. page
  198. }
  199. let res = await this.$post("/api/admin/kaifawu/getDetail", data);
  200. if (res && res.status === 1) {
  201. this.detailData = res.data
  202. switch(this.detailData.companyInfo.applyInfo.status){
  203. case '0':
  204. this.company_verify_status = '未申请';
  205. break;
  206. case '1':
  207. this.company_verify_status = '申请中';
  208. break;
  209. case '2':
  210. this.company_verify_status = '通过';
  211. break;
  212. case '3':
  213. this.company_verify_status = '拒绝';
  214. break;
  215. }
  216. }
  217. },
  218. async userinfo(uid){
  219. let url = window.location.href;
  220. if(url.indexOf('dev')!=-1){
  221. window.open(`https://dev.test.proginn.com/rooter/user/${uid}`)
  222. } else if(url.indexOf('local')!=-1){
  223. window.open(`http://local.proginn.com/rooter/user/${uid}`)
  224. } else {
  225. window.open(`https://proginn.com/rooter/user/${uid}`)
  226. }
  227. },
  228. async woinfo(uid){
  229. let url = window.location.href;
  230. if(url.indexOf('dev')!=-1){
  231. window.open(`https://dev.test.proginn.com/wo/${uid}`)
  232. } else if(url.indexOf('local')!=-1){
  233. window.open(`http://local.proginn.com/wo/${uid}`)
  234. } else {
  235. window.open(`https://proginn.com/wo/${uid}`)
  236. }
  237. },
  238. async returnPage(){
  239. let url = window.location.href;
  240. window.open(`/main/solution/`,'_self')
  241. },
  242. async companyVerifyStatus(uid){
  243. let url = window.location.href;
  244. if(url.indexOf('dev')!=-1){
  245. window.open(`https://dev.test.proginn.com/rooter/companyVerifyAuditItem?uid=${uid}`)
  246. } else if(url.indexOf('local')!=-1){
  247. window.open(`http://local.proginn.com/rooter/companyVerifyAuditItem?uid=${uid}`)
  248. } else {
  249. window.open(`https://proginn.com/rooter/companyVerifyAuditItem?uid=${uid}`)
  250. }
  251. },
  252. async updateStatus(item){
  253. const result = 3;
  254. const auditData = '您的解决方案'+item.title+'审核被拒绝!';
  255. const data ={
  256. 'id':item.id,
  257. result,
  258. auditData
  259. };
  260. let res = await this.$post("/api/admin/kaifawu/auditProvider", data);
  261. if (res && res.status === 1){
  262. this.$message({
  263. message: '修改成功!',
  264. type: 'success'
  265. });
  266. }
  267. },
  268. async sendEmail(item){
  269. const result = this.radio;
  270. let auditData = '';
  271. auditData = this.reason;
  272. if(this.show&&(this.reason.length==0)){
  273. this.$message({
  274. message: '请输入拒绝原因!',
  275. type: 'warning'
  276. });
  277. return false;
  278. }
  279. const data ={
  280. 'id':item.id,
  281. result,
  282. auditData
  283. };
  284. let res = await this.$post("/api/admin/kaifawu/auditProvider", data);
  285. if (res && res.status === 1){
  286. this.$message({
  287. message: '修改成功!',
  288. type: 'success'
  289. });
  290. }
  291. },
  292. async refuse(){
  293. this.show = true;
  294. },
  295. async pass(){
  296. this.show = false;
  297. },
  298. }
  299. }
  300. </script>
  301. <style lang="scss" scoped>
  302. .header {
  303. display: flex;
  304. }
  305. .title-wrapper {
  306. display: flex;
  307. align-items: center;
  308. }
  309. .title {
  310. line-height: 27px;
  311. font-weight: bold;
  312. font-size: 18px;
  313. color: #101010;
  314. }
  315. .status {
  316. margin-left: 6px;
  317. line-height: 20px;
  318. font-size: 14px;
  319. }
  320. .salary {
  321. margin-top: 13px;
  322. line-height: 24px;
  323. font-size: 16px;
  324. color: #101010;
  325. }
  326. .skill {
  327. margin-top: 8px;
  328. line-height: 24px;
  329. font-size: 16px;
  330. color: #101010;
  331. }
  332. .experience {
  333. margin-top: 8px;
  334. line-height: 24px;
  335. font-size: 16px;
  336. color: #101010;
  337. }
  338. .owner-wrapper {
  339. margin-left: 100px;
  340. text-align: center;
  341. }
  342. .owner-img {
  343. width: 53px;
  344. height: 53px;
  345. border-radius: 50%;
  346. }
  347. .owner-name {
  348. margin-top: 8px;
  349. line-height: 20px;
  350. font-size: 14px;
  351. color: #3F51B5;
  352. }
  353. .description-wrapper {
  354. margin-top: 22px;
  355. }
  356. .description-title {
  357. line-height: 27px;
  358. font-weight: bold;
  359. font-size: 18px;
  360. color: #101010;
  361. }
  362. .description-content {
  363. margin-top: 16px;
  364. line-height: 24px;
  365. font-size: 16px;
  366. color: #101010;
  367. }
  368. </style>