陈鹏铭 vor 4 Monaten
Ursprung
Commit
f3cbf0a503
57 geänderte Dateien mit 7361 neuen und 0 gelöschten Zeilen
  1. 12 0
      .idea/HSW_WX.iml
  2. 8 0
      .idea/modules.xml
  3. 358 0
      node_modules/form-data/README.md.bak
  4. 205 0
      pages/login/md5.js
  5. 944 0
      pages/subPackages/companyDetailsSee/companyDetailsSee.vue
  6. 218 0
      pages/subPackages/companyHouseSee/companyHouseSee.vue
  7. 205 0
      pages/subPackages/password/md5.js
  8. 319 0
      pages/subPackages/serve-confirm/add.vue
  9. 662 0
      pages/subPackages/serve-confirm/detail.vue
  10. 303 0
      pages/subPackages/serve-confirm/index.vue
  11. 379 0
      uni_modules/uni-fab/components/uni-fab/uni-fab.vue.bak
  12. BIN
      unpackage/dist/build/mp-weixin/common/assets/image/logobig.png
  13. 1 0
      unpackage/dist/build/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.js
  14. 24 0
      unpackage/dist/build/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.json
  15. 1 0
      unpackage/dist/build/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.wxml
  16. 1 0
      unpackage/dist/build/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.wxss
  17. 1 0
      unpackage/dist/build/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.js
  18. 24 0
      unpackage/dist/build/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.json
  19. 1 0
      unpackage/dist/build/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.wxml
  20. 1 0
      unpackage/dist/build/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.wxss
  21. 1 0
      unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/detail.js
  22. 25 0
      unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/detail.json
  23. 1 0
      unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/detail.wxml
  24. 1 0
      unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/detail.wxss
  25. 1 0
      unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/index.js
  26. 19 0
      unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/index.json
  27. 1 0
      unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/index.wxml
  28. 1 0
      unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/index.wxss
  29. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.js.map
  30. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/subPackages/companyHouse/companyHouseSee.js.map
  31. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/subPackages/companyHouseSee/companyHouse.js.map
  32. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.js.map
  33. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/subPackages/serve-confirm/detail.js.map
  34. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/subPackages/serve-confirm/index.js.map
  35. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/wxcomponents/weapp/dist/cascader/index.js.map
  36. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/wxcomponents/weapp/dist/icon/index.js.map
  37. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/wxcomponents/weapp/dist/info/index.js.map
  38. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/wxcomponents/weapp/dist/sticky/index.js.map
  39. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/wxcomponents/weapp/dist/tab/index.js.map
  40. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/wxcomponents/weapp/dist/tabs/index.js.map
  41. BIN
      unpackage/dist/dev/mp-weixin/common/assets/image/logobig.png
  42. 674 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.js
  43. 24 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.json
  44. 1 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.wxml
  45. 442 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.wxss
  46. 470 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.js
  47. 24 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.json
  48. 1 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.wxml
  49. 211 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.wxss
  50. 559 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/detail.js
  51. 25 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/detail.json
  52. 1 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/detail.wxml
  53. 526 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/detail.wxss
  54. 391 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/index.js
  55. 19 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/index.json
  56. 1 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/index.wxml
  57. 263 0
      unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/index.wxss

+ 12 - 0
.idea/HSW_WX.iml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$">
+      <excludeFolder url="file://$MODULE_DIR$/.tmp" />
+      <excludeFolder url="file://$MODULE_DIR$/temp" />
+      <excludeFolder url="file://$MODULE_DIR$/tmp" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 8 - 0
.idea/modules.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/HSW_WX.iml" filepath="$PROJECT_DIR$/.idea/HSW_WX.iml" />
+    </modules>
+  </component>
+</project>

+ 358 - 0
node_modules/form-data/README.md.bak

@@ -0,0 +1,358 @@
+# Form-Data [![NPM Module](https://img.shields.io/npm/v/form-data.svg)](https://www.npmjs.com/package/form-data) [![Join the chat at https://gitter.im/form-data/form-data](http://form-data.github.io/images/gitterbadge.svg)](https://gitter.im/form-data/form-data)
+
+A library to create readable ```"multipart/form-data"``` streams. Can be used to submit forms and file uploads to other web applications.
+
+The API of this library is inspired by the [XMLHttpRequest-2 FormData Interface][xhr2-fd].
+
+[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface
+
+[![Linux Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=linux:6.x-12.x)](https://travis-ci.org/form-data/form-data)
+[![MacOS Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=macos:6.x-12.x)](https://travis-ci.org/form-data/form-data)
+[![Windows Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=windows:6.x-12.x)](https://travis-ci.org/form-data/form-data)
+
+[![Coverage Status](https://img.shields.io/coveralls/form-data/form-data/v4.0.0.svg?label=code+coverage)](https://coveralls.io/github/form-data/form-data?branch=master)
+[![Dependency Status](https://img.shields.io/david/form-data/form-data.svg)](https://david-dm.org/form-data/form-data)
+
+## Install
+
+```
+npm install --save form-data
+```
+
+## Usage
+
+In this example we are constructing a form with 3 fields that contain a string,
+a buffer and a file stream.
+
+``` javascript
+var FormData = require('form-data');
+var fs = require('fs');
+
+var form = new FormData();
+form.append('my_field', 'my value');
+form.append('my_buffer', new Buffer(10));
+form.append('my_file', fs.createReadStream('/foo/bar.jpg'));
+```
+
+Also you can use http-response stream:
+
+``` javascript
+var FormData = require('form-data');
+var http = require('http');
+
+var form = new FormData();
+
+http.request('http://nodejs.org/images/logo.png', function(response) {
+  form.append('my_field', 'my value');
+  form.append('my_buffer', new Buffer(10));
+  form.append('my_logo', response);
+});
+```
+
+Or @mikeal's [request](https://github.com/request/request) stream:
+
+``` javascript
+var FormData = require('form-data');
+var request = require('request');
+
+var form = new FormData();
+
+form.append('my_field', 'my value');
+form.append('my_buffer', new Buffer(10));
+form.append('my_logo', request('http://nodejs.org/images/logo.png'));
+```
+
+In order to submit this form to a web application, call ```submit(url, [callback])``` method:
+
+``` javascript
+form.submit('http://example.org/', function(err, res) {
+  // res – response object (http.IncomingMessage)  //
+  res.resume();
+});
+
+```
+
+For more advanced request manipulations ```submit()``` method returns ```http.ClientRequest``` object, or you can choose from one of the alternative submission methods.
+
+### Custom options
+
+You can provide custom options, such as `maxDataSize`:
+
+``` javascript
+var FormData = require('form-data');
+
+var form = new FormData({ maxDataSize: 20971520 });
+form.append('my_field', 'my value');
+form.append('my_buffer', /* something big */);
+```
+
+List of available options could be found in [combined-stream](https://github.com/felixge/node-combined-stream/blob/master/lib/combined_stream.js#L7-L15)
+
+### Alternative submission methods
+
+You can use node's http client interface:
+
+``` javascript
+var http = require('http');
+
+var request = http.request({
+  method: 'post',
+  host: 'example.org',
+  path: '/upload',
+  headers: form.getHeaders()
+});
+
+form.pipe(request);
+
+request.on('response', function(res) {
+  console.log(res.statusCode);
+});
+```
+
+Or if you would prefer the `'Content-Length'` header to be set for you:
+
+``` javascript
+form.submit('example.org/upload', function(err, res) {
+  console.log(res.statusCode);
+});
+```
+
+To use custom headers and pre-known length in parts:
+
+``` javascript
+var CRLF = '\r\n';
+var form = new FormData();
+
+var options = {
+  header: CRLF + '--' + form.getBoundary() + CRLF + 'X-Custom-Header: 123' + CRLF + CRLF,
+  knownLength: 1
+};
+
+form.append('my_buffer', buffer, options);
+
+form.submit('http://example.com/', function(err, res) {
+  if (err) throw err;
+  console.log('Done');
+});
+```
+
+Form-Data can recognize and fetch all the required information from common types of streams (```fs.readStream```, ```http.response``` and ```mikeal's request```), for some other types of streams you'd need to provide "file"-related information manually:
+
+``` javascript
+someModule.stream(function(err, stdout, stderr) {
+  if (err) throw err;
+
+  var form = new FormData();
+
+  form.append('file', stdout, {
+    filename: 'unicycle.jpg', // ... or:
+    filepath: 'photos/toys/unicycle.jpg',
+    contentType: 'image/jpeg',
+    knownLength: 19806
+  });
+
+  form.submit('http://example.com/', function(err, res) {
+    if (err) throw err;
+    console.log('Done');
+  });
+});
+```
+
+The `filepath` property overrides `filename` and may contain a relative path. This is typically used when uploading [multiple files from a directory](https://wicg.github.io/entries-api/#dom-htmlinputelement-webkitdirectory).
+
+For edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter:
+
+``` javascript
+form.submit({
+  host: 'example.com',
+  path: '/probably.php?extra=params',
+  auth: 'username:password'
+}, function(err, res) {
+  console.log(res.statusCode);
+});
+```
+
+In case you need to also send custom HTTP headers with the POST request, you can use the `headers` key in first parameter of `form.submit()`:
+
+``` javascript
+form.submit({
+  host: 'example.com',
+  path: '/surelynot.php',
+  headers: {'x-test-header': 'test-header-value'}
+}, function(err, res) {
+  console.log(res.statusCode);
+});
+```
+
+### Methods
+
+- [_Void_ append( **String** _field_, **Mixed** _value_ [, **Mixed** _options_] )](https://github.com/form-data/form-data#void-append-string-field-mixed-value--mixed-options-).
+- [_Headers_ getHeaders( [**Headers** _userHeaders_] )](https://github.com/form-data/form-data#array-getheaders-array-userheaders-)
+- [_String_ getBoundary()](https://github.com/form-data/form-data#string-getboundary)
+- [_Void_ setBoundary()](https://github.com/form-data/form-data#void-setboundary)
+- [_Buffer_ getBuffer()](https://github.com/form-data/form-data#buffer-getbuffer)
+- [_Integer_ getLengthSync()](https://github.com/form-data/form-data#integer-getlengthsync)
+- [_Integer_ getLength( **function** _callback_ )](https://github.com/form-data/form-data#integer-getlength-function-callback-)
+- [_Boolean_ hasKnownLength()](https://github.com/form-data/form-data#boolean-hasknownlength)
+- [_Request_ submit( _params_, **function** _callback_ )](https://github.com/form-data/form-data#request-submit-params-function-callback-)
+- [_String_ toString()](https://github.com/form-data/form-data#string-tostring)
+
+#### _Void_ append( **String** _field_, **Mixed** _value_ [, **Mixed** _options_] )
+Append data to the form. You can submit about any format (string, integer, boolean, buffer, etc.). However, Arrays are not supported and need to be turned into strings by the user.
+```javascript
+var form = new FormData();
+form.append( 'my_string', 'my value' );
+form.append( 'my_integer', 1 );
+form.append( 'my_boolean', true );
+form.append( 'my_buffer', new Buffer(10) );
+form.append( 'my_array_as_json', JSON.stringify( ['bird','cute'] ) )
+```
+
+You may provide a string for options, or an object.
+```javascript
+// Set filename by providing a string for options
+form.append( 'my_file', fs.createReadStream('/foo/bar.jpg'), 'bar.jpg' );
+
+// provide an object.
+form.append( 'my_file', fs.createReadStream('/foo/bar.jpg'), {filename: 'bar.jpg', contentType: 'image/jpeg', knownLength: 19806} );
+```
+
+#### _Headers_ getHeaders( [**Headers** _userHeaders_] )
+This method adds the correct `content-type` header to the provided array of `userHeaders`.
+
+#### _String_ getBoundary()
+Return the boundary of the formData. By default, the boundary consists of 26 `-` followed by 24 numbers
+for example:
+```javascript
+--------------------------515890814546601021194782
+```
+
+#### _Void_ setBoundary(String _boundary_)
+Set the boundary string, overriding the default behavior described above.
+
+_Note: The boundary must be unique and may not appear in the data._
+
+#### _Buffer_ getBuffer()
+Return the full formdata request package, as a Buffer. You can insert this Buffer in e.g. Axios to send multipart data.
+```javascript
+var form = new FormData();
+form.append( 'my_buffer', Buffer.from([0x4a,0x42,0x20,0x52,0x6f,0x63,0x6b,0x73]) );
+form.append( 'my_file', fs.readFileSync('/foo/bar.jpg') );
+
+axios.post( 'https://example.com/path/to/api',
+            form.getBuffer(),
+            form.getHeaders()
+          )
+```
+**Note:** Because the output is of type Buffer, you can only append types that are accepted by Buffer: *string, Buffer, ArrayBuffer, Array, or Array-like Object*. A ReadStream for example will result in an error.
+
+#### _Integer_ getLengthSync()
+Same as `getLength` but synchronous.
+
+_Note: getLengthSync __doesn't__ calculate streams length._
+
+#### _Integer_ getLength( **function** _callback_ )
+Returns the `Content-Length` async. The callback is used to handle errors and continue once the length has been calculated
+```javascript
+this.getLength(function(err, length) {
+  if (err) {
+    this._error(err);
+    return;
+  }
+
+  // add content length
+  request.setHeader('Content-Length', length);
+
+  ...
+}.bind(this));
+```
+
+#### _Boolean_ hasKnownLength()
+Checks if the length of added values is known.
+
+#### _Request_ submit( _params_, **function** _callback_ )
+Submit the form to a web application.
+```javascript
+var form = new FormData();
+form.append( 'my_string', 'Hello World' );
+
+form.submit( 'http://example.com/', function(err, res) {
+  // res – response object (http.IncomingMessage)  //
+  res.resume();
+} );
+```
+
+#### _String_ toString()
+Returns the form data as a string. Don't use this if you are sending files or buffers, use `getBuffer()` instead.
+
+### Integration with other libraries
+
+#### Request
+
+Form submission using  [request](https://github.com/request/request):
+
+```javascript
+var formData = {
+  my_field: 'my_value',
+  my_file: fs.createReadStream(__dirname + '/unicycle.jpg'),
+};
+
+request.post({url:'http://service.com/upload', formData: formData}, function(err, httpResponse, body) {
+  if (err) {
+    return console.error('upload failed:', err);
+  }
+  console.log('Upload successful!  Server responded with:', body);
+});
+```
+
+For more details see [request readme](https://github.com/request/request#multipartform-data-multipart-form-uploads).
+
+#### node-fetch
+
+You can also submit a form using [node-fetch](https://github.com/bitinn/node-fetch):
+
+```javascript
+var form = new FormData();
+
+form.append('a', 1);
+
+fetch('http://example.com', { method: 'POST', body: form })
+    .then(function(res) {
+        return res.json();
+    }).then(function(json) {
+        console.log(json);
+    });
+```
+
+#### axios
+
+In Node.js you can post a file using [axios](https://github.com/axios/axios):
+```javascript
+const form = new FormData();
+const stream = fs.createReadStream(PATH_TO_FILE);
+
+form.append('image', stream);
+
+// In Node.js environment you need to set boundary in the header field 'Content-Type' by calling method `getHeaders`
+const formHeaders = form.getHeaders();
+
+axios.post('http://example.com', form, {
+  headers: {
+    ...formHeaders,
+  },
+})
+.then(response => response)
+.catch(error => error)
+```
+
+## Notes
+
+- ```getLengthSync()``` method DOESN'T calculate length for streams, use ```knownLength``` options as workaround.
+- ```getLength(cb)``` will send an error as first parameter of callback if stream length cannot be calculated (e.g. send in custom streams w/o using ```knownLength```).
+- ```submit``` will not add `content-length` if form length is unknown or not calculable.
+- Starting version `2.x` FormData has dropped support for `node@0.10.x`.
+- Starting version `3.x` FormData has dropped support for `node@4.x`.
+
+## License
+
+Form-Data is released under the [MIT](License) license.

+ 205 - 0
pages/login/md5.js

@@ -0,0 +1,205 @@
+/* 
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message 
+ * Digest Algorithm, as defined in RFC 1321. 
+ * Version 1.1 Copyright (C) Paul Johnston 1999 - 2002. 
+ * Code also contributed by Greg Holt 
+ * See http://pajhome.org.uk/site/legal.html for details. 
+ */
+
+/* 
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally 
+ * to work around bugs in some JS interpreters. 
+ */
+function safe_add(x, y) {
+    var lsw = (x & 0xFFFF) + (y & 0xFFFF)
+    var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
+    return (msw << 16) | (lsw & 0xFFFF)
+}
+
+/* 
+ * Bitwise rotate a 32-bit number to the left. 
+ */
+function rol(num, cnt) {
+    return (num << cnt) | (num >>> (32 - cnt))
+}
+
+/* 
+ * These functions implement the four basic operations the algorithm uses. 
+ */
+function cmn(q, a, b, x, s, t) {
+    return safe_add(rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
+}
+function ff(a, b, c, d, x, s, t) {
+    return cmn((b & c) | ((~b) & d), a, b, x, s, t)
+}
+function gg(a, b, c, d, x, s, t) {
+    return cmn((b & d) | (c & (~d)), a, b, x, s, t)
+}
+function hh(a, b, c, d, x, s, t) {
+    return cmn(b ^ c ^ d, a, b, x, s, t)
+}
+function ii(a, b, c, d, x, s, t) {
+    return cmn(c ^ (b | (~d)), a, b, x, s, t)
+}
+
+/* 
+ * Calculate the MD5 of an array of little-endian words, producing an array 
+ * of little-endian words. 
+ */
+function coreMD5(x) {
+    var a = 1732584193
+    var b = -271733879
+    var c = -1732584194
+    var d = 271733878
+
+    for (var i = 0; i < x.length; i += 16) {
+        var olda = a
+        var oldb = b
+        var oldc = c
+        var oldd = d
+
+        a = ff(a, b, c, d, x[i + 0], 7, -680876936)
+        d = ff(d, a, b, c, x[i + 1], 12, -389564586)
+        c = ff(c, d, a, b, x[i + 2], 17, 606105819)
+        b = ff(b, c, d, a, x[i + 3], 22, -1044525330)
+        a = ff(a, b, c, d, x[i + 4], 7, -176418897)
+        d = ff(d, a, b, c, x[i + 5], 12, 1200080426)
+        c = ff(c, d, a, b, x[i + 6], 17, -1473231341)
+        b = ff(b, c, d, a, x[i + 7], 22, -45705983)
+        a = ff(a, b, c, d, x[i + 8], 7, 1770035416)
+        d = ff(d, a, b, c, x[i + 9], 12, -1958414417)
+        c = ff(c, d, a, b, x[i + 10], 17, -42063)
+        b = ff(b, c, d, a, x[i + 11], 22, -1990404162)
+        a = ff(a, b, c, d, x[i + 12], 7, 1804603682)
+        d = ff(d, a, b, c, x[i + 13], 12, -40341101)
+        c = ff(c, d, a, b, x[i + 14], 17, -1502002290)
+        b = ff(b, c, d, a, x[i + 15], 22, 1236535329)
+
+        a = gg(a, b, c, d, x[i + 1], 5, -165796510)
+        d = gg(d, a, b, c, x[i + 6], 9, -1069501632)
+        c = gg(c, d, a, b, x[i + 11], 14, 643717713)
+        b = gg(b, c, d, a, x[i + 0], 20, -373897302)
+        a = gg(a, b, c, d, x[i + 5], 5, -701558691)
+        d = gg(d, a, b, c, x[i + 10], 9, 38016083)
+        c = gg(c, d, a, b, x[i + 15], 14, -660478335)
+        b = gg(b, c, d, a, x[i + 4], 20, -405537848)
+        a = gg(a, b, c, d, x[i + 9], 5, 568446438)
+        d = gg(d, a, b, c, x[i + 14], 9, -1019803690)
+        c = gg(c, d, a, b, x[i + 3], 14, -187363961)
+        b = gg(b, c, d, a, x[i + 8], 20, 1163531501)
+        a = gg(a, b, c, d, x[i + 13], 5, -1444681467)
+        d = gg(d, a, b, c, x[i + 2], 9, -51403784)
+        c = gg(c, d, a, b, x[i + 7], 14, 1735328473)
+        b = gg(b, c, d, a, x[i + 12], 20, -1926607734)
+
+        a = hh(a, b, c, d, x[i + 5], 4, -378558)
+        d = hh(d, a, b, c, x[i + 8], 11, -2022574463)
+        c = hh(c, d, a, b, x[i + 11], 16, 1839030562)
+        b = hh(b, c, d, a, x[i + 14], 23, -35309556)
+        a = hh(a, b, c, d, x[i + 1], 4, -1530992060)
+        d = hh(d, a, b, c, x[i + 4], 11, 1272893353)
+        c = hh(c, d, a, b, x[i + 7], 16, -155497632)
+        b = hh(b, c, d, a, x[i + 10], 23, -1094730640)
+        a = hh(a, b, c, d, x[i + 13], 4, 681279174)
+        d = hh(d, a, b, c, x[i + 0], 11, -358537222)
+        c = hh(c, d, a, b, x[i + 3], 16, -722521979)
+        b = hh(b, c, d, a, x[i + 6], 23, 76029189)
+        a = hh(a, b, c, d, x[i + 9], 4, -640364487)
+        d = hh(d, a, b, c, x[i + 12], 11, -421815835)
+        c = hh(c, d, a, b, x[i + 15], 16, 530742520)
+        b = hh(b, c, d, a, x[i + 2], 23, -995338651)
+
+        a = ii(a, b, c, d, x[i + 0], 6, -198630844)
+        d = ii(d, a, b, c, x[i + 7], 10, 1126891415)
+        c = ii(c, d, a, b, x[i + 14], 15, -1416354905)
+        b = ii(b, c, d, a, x[i + 5], 21, -57434055)
+        a = ii(a, b, c, d, x[i + 12], 6, 1700485571)
+        d = ii(d, a, b, c, x[i + 3], 10, -1894986606)
+        c = ii(c, d, a, b, x[i + 10], 15, -1051523)
+        b = ii(b, c, d, a, x[i + 1], 21, -2054922799)
+        a = ii(a, b, c, d, x[i + 8], 6, 1873313359)
+        d = ii(d, a, b, c, x[i + 15], 10, -30611744)
+        c = ii(c, d, a, b, x[i + 6], 15, -1560198380)
+        b = ii(b, c, d, a, x[i + 13], 21, 1309151649)
+        a = ii(a, b, c, d, x[i + 4], 6, -145523070)
+        d = ii(d, a, b, c, x[i + 11], 10, -1120210379)
+        c = ii(c, d, a, b, x[i + 2], 15, 718787259)
+        b = ii(b, c, d, a, x[i + 9], 21, -343485551)
+
+        a = safe_add(a, olda)
+        b = safe_add(b, oldb)
+        c = safe_add(c, oldc)
+        d = safe_add(d, oldd)
+    }
+    return [a, b, c, d]
+}
+
+/* 
+ * Convert an array of little-endian words to a hex string. 
+ */
+function binl2hex(binarray) {
+    var hex_tab = "0123456789abcdef"
+    var str = ""
+    for (var i = 0; i < binarray.length * 4; i++) {
+        str += hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8 + 4)) & 0xF) +
+            hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8)) & 0xF)
+    }
+    return str
+}
+
+/* 
+ * Convert an array of little-endian words to a base64 encoded string. 
+ */
+function binl2b64(binarray) {
+    var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
+    var str = ""
+    for (var i = 0; i < binarray.length * 32; i += 6) {
+        str += tab.charAt(((binarray[i >> 5] << (i % 32)) & 0x3F) |
+            ((binarray[i >> 5 + 1] >> (32 - i % 32)) & 0x3F))
+    }
+    return str
+}
+
+/* 
+ * Convert an 8-bit character string to a sequence of 16-word blocks, stored 
+ * as an array, and append appropriate padding for MD4/5 calculation. 
+ * If any of the characters are >255, the high byte is silently ignored. 
+ */
+function str2binl(str) {
+    var nblk = ((str.length + 8) >> 6) + 1 // number of 16-word blocks  
+    var blks = new Array(nblk * 16)
+    for (var i = 0; i < nblk * 16; i++) blks[i] = 0
+    for (var i = 0; i < str.length; i++)
+        blks[i >> 2] |= (str.charCodeAt(i) & 0xFF) << ((i % 4) * 8)
+    blks[i >> 2] |= 0x80 << ((i % 4) * 8)
+    blks[nblk * 16 - 2] = str.length * 8
+    return blks
+}
+
+/* 
+ * Convert a wide-character string to a sequence of 16-word blocks, stored as 
+ * an array, and append appropriate padding for MD4/5 calculation. 
+ */
+function strw2binl(str) {
+    var nblk = ((str.length + 4) >> 5) + 1 // number of 16-word blocks  
+    var blks = new Array(nblk * 16)
+    for (var i = 0; i < nblk * 16; i++) blks[i] = 0
+    for (var i = 0; i < str.length; i++)
+        blks[i >> 1] |= str.charCodeAt(i) << ((i % 2) * 16)
+    blks[i >> 1] |= 0x80 << ((i % 2) * 16)
+    blks[nblk * 16 - 2] = str.length * 16
+    return blks
+}
+
+/* 
+ * External interface 
+ */
+function hexMD5(str) { return binl2hex(coreMD5(str2binl(str))) }
+function hexMD5w(str) { return binl2hex(coreMD5(strw2binl(str))) }
+function b64MD5(str) { return binl2b64(coreMD5(str2binl(str))) }
+function b64MD5w(str) { return binl2b64(coreMD5(strw2binl(str))) }
+/* Backward compatibility */
+function calcMD5(str) { return binl2hex(coreMD5(str2binl(str))) }
+module.exports = {
+    hexMD5: hexMD5
+}  

+ 944 - 0
pages/subPackages/companyDetailsSee/companyDetailsSee.vue

@@ -0,0 +1,944 @@
+<template>
+  <div class="housedetails">
+    <div class="list">
+      <div class="allpd32rpx bgcFFFFFF mb16rpx">
+        <van-row>
+          <van-col :span="24">
+            <div class="detailstitle width100 mt24rpx border_bottom_ccc">
+              <div class="float_left width80">
+                <div>{{ form.qymc }}</div>
+                <span style="color: #aaaaaa; font-size: 24rpx">
+                  {{ form.rzsj ? "园区入驻时间:" + form.rzsj : '园区入驻时间:暂无' }}
+                </span>
+              </div>
+              <div class="width20 float_left">
+                <div class="companystatus" v-if="form.settleInType"
+                  style="margin-top: -7rpx; float: right; width: 100%">
+                  {{ getDicType("type", form.settleInType) }}
+                  <!--									{{form.settleInType}}-->
+                </div>
+              </div>
+            </div>
+          </van-col>
+          <van-col :span="24">
+            <div class="typestitle width100 mt24rpx mb16rpx border_bottom_ccc fontcolor251FCA">
+              <div class="float_left" style="width: 90%" @click="jumpDeleteTgas()">
+                <span v-for="(item, index) in qymcString" :key="index" v-if="qymcString && qymcString.length > 0">
+                  {{ item }}
+                  ·
+                </span>
+                <span v-if="!qymcString || qymcString.length == 0">
+                  暂无标签
+                </span>
+              </div>
+              <!-- <van-icon @click="jumpChosseTags()" class="float_right"
+                style="font-size: 50rpx; width: 50rpx; margin-top: -12rpx" name="edit" /> -->
+            </div>
+          </van-col>
+        </van-row>
+        <van-row class="border_bottom_ccc">
+          <van-col :span="8">
+            <div class="yongtu_second_title">入驻状态</div>
+            <div class="yongtu_first_title">
+              {{ getDicType("zt", form.entryStatus) }}
+            </div>
+          </van-col>
+          <!-- <van-col :span="6">
+            <div class="yongtu_second_title">所属楼盘</div>
+            <div class="yongtu_first_title chaochuyincang">
+              {{ !form.areaName ? "暂无" : form.areaName }}
+            </div>
+          </van-col> -->
+          <!-- <van-col :span="6">
+            <div class="yongtu_second_title">招商经理</div>
+            <div class="yongtu_first_title chaochuyincang">
+              {{
+                form.investmentManagerName == null
+                  ? "暂无"
+                  : form.investmentManagerName
+              }}
+            </div>
+          </van-col> -->
+          <van-col :span="8">
+            <div class="yongtu_second_title">从业人数</div>
+            <div class="yongtu_first_title">
+              {{ form.practiceNumber == null ? "未知" : form.practiceNumber }}
+            </div>
+          </van-col>
+          <van-col :span="8">
+            <div class="yongtu_second_title">所属行业</div>
+            <div class="yongtu_first_title chaochuyincang">
+              {{ form.industry == null ? "未知" : form.industry }}
+            </div>
+          </van-col>
+        </van-row>
+        <div style="
+            border-top: 2rpx solid #cccccc;
+
+            font-size: 24rpx;
+            color: #777777;
+          ">
+          <div style="margin: 16rpx 0">
+            所属楼盘:{{ !form.areaName ? "暂无" : form.areaName }}
+          </div>
+          <!-- <div style="margin: 16rpx 0">
+            当前企服专员{{
+              !form.serviceCommissionerName
+                ? "暂无"
+                : form.serviceCommissionerName
+            }}
+          </div> -->
+        </div>
+      </div>
+      <div class="list-row" style="padding-top: 0">
+        <uni-collapse v-model="value" style="width: 100%">
+          <uni-collapse-item title="基础信息" :open="true" @change="selectItems">
+            <view slot="title" class="uni-collapse-item__title-text">基础信息
+              <!-- <van-icon @click="jumpEditCompanyDetails(id)" name="edit" style="
+                  color: #1d18bc;
+                  z-index: 100;
+                  font-size: 35rpx;
+                  font-weight: bold;
+                  margin-left: 10px;
+                " /> -->
+            </view>
+            <div style="height: auto">
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date" style="display: flex;">
+                <view class="input_title float_left">公司名称:</view>
+                <span class="input_value float_left" style="color: #777;height: auto;">{{ form.qymc }}</span>
+                <!-- <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.qymc" /> -->
+              </view>
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">统一社会信用代码:</view>
+                <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.shxydm" />
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">注册资金(万元):</view>
+                <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.zczj" />
+              </view>
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">币种</view>
+                <div style="color: #777" class="input_value float_left">
+                  {{ getDicType("money", form.currency) }}
+                </div>
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">注册时间:</view>
+                <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.zcsj" />
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">法定代表人:</view>
+                <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.fddbr" />
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">法人电话 :</view>
+                <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.legalPersonPhone" />
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">法人邮箱 :</view>
+                <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.frEmail" />
+              </view>
+
+              <!-- <view
+                v-if="
+                  !form.frsfzh ||
+                  form.frsfzh.length == 0 ||
+                  form.frsfzh == '暂无'
+                "
+                class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx"
+              >
+                <view class="input_title float_left">法人身份证:</view>
+                <input
+                  disabled="true"
+                  style="color: #777"
+                  class="input_value float_left"
+                  placeholder="暂无"
+                />
+              </view>
+
+              <view
+                v-if="form.frsfzh && form.frsfzh.length != 0"
+                class="width100 mt24rpx padb24rpx border_bottom_ccc list_date"
+                style="height: 194rpx"
+              >
+                <view class="input_title">法人身份证:</view>
+
+                <view class="width100" style="position: relative">
+                  <img
+                    @click="choosefrsfzh_zhenmian()"
+                    :src="
+                      BASE_URI +
+                      '/FileController/download/' +
+                      form.frsfzh_zhenmian
+                    "
+                    class="idclass margin12rpx float_left"
+                    placeholder="请输入"
+                  />
+
+                  <img
+                    @click="choosefrsfzh_fanmian()"
+                    :src="
+                      BASE_URI +
+                      '/FileController/download/' +
+                      form.frsfzh_fanmian
+                    "
+                    class="idclass margin12rpx float_left"
+                    placeholder="请输入"
+                  />
+                </view>
+              </view> -->
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">企业联系人</view>
+                <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.qylxr" />
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">联系人电话:</view>
+                <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.lxdh" />
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">联系人邮箱:</view>
+                <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.email" />
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">财务负责人:</view>
+                <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.cwfzr" />
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">负责人电话:</view>
+                <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.cwfzrdh" />
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">入驻类型</view>
+
+                <div class="input_value float_left">
+                  {{ form.settleInType ? getDicType("type", form.settleInType) : '暂无' }}
+
+                </div>
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date" style="display: flex">
+                <view class="input_title float_left">招商经理:</view>
+                <view style="color: #777; font-size: 28rpx; width: 60%">
+                  {{ form.investmentManagerName == 'undefined' ? form.investmentManagerName : '暂无' }}
+                </view>
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">所属楼盘:</view>
+                <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.areaName" />
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx"
+                style="display: flex;height: auto;">
+                <view class="input_title float_left">注册地址:</view>
+                <span class="input_value float_left" style="color: #777;height: auto;">{{ form.zcdz }}</span>
+                <!-- <input disabled="true" style="color: #777" class="input_value float_left" placeholder="暂无"
+                  v-model="form.zcdz" /> -->
+              </view>
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">
+                  <span style="color: red">*&nbsp;</span>
+                  所属园区
+                </view>
+                <div style="width: 315rpx; float: left;color: #777777;">{{ form.parkInfoName || '暂无' }}</div>
+                <!--                <img class="height40rpx width40rpx float_left" src="../../../static/mine/youjiantou.png" alt="" />-->
+              </view>
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">
+                  <span style="color: red">*&nbsp;</span>
+
+                  面积:
+                </view>
+                <input style="color: #777" class="input_value float_left" placeholder="请输入" v-model="form.areaSize" />
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx">
+                <view class="input_title float_left">
+                  <span style="color: red">*&nbsp;</span>
+                  经营地址:
+                </view>
+                <input style="color: #777" class="input_value float_left" placeholder="请输入" v-model="form.jydzValue" />
+              </view>
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date"
+                style="    display: flex;align-items: center;flex-direction: column;">
+                <view class="input_title float_left" style="width: 100%;display: flex;justify-content: space-between;">
+                  <div><span style="color: red">*&nbsp;</span> 经营地址载体:</div>
+                </view>
+                <div v-for="item in jydzAry" class="jydzList">
+                  <div class="jydzList-row">{{ item.name }}</div>
+                </div>
+              </view>
+              <textarea class="mt24rpx border_bottom_ccc" :maxlength="2000" placeholder="请输入经营地址说明"
+                v-model="form.jydzRemark" type="textarea" style="
+                height: 270rpx;
+                background: rgba(249, 249, 249, 1);
+                padding: 20rpx;
+                width: calc(100% - 40rpx);
+              " />
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date" style="display: flex">
+                <view class="input_title">主营业务:</view>
+                <div>
+                  <span v-for="(item, index) in form.jyfw" :key="index">
+                    {{ item }}
+                    {{ form.jyfw && index != form.jyfw.length - 1 ? ',' : '' }}
+                  </span>
+                </div>
+              </view>
+              <view class="width100 mt24rpx list_date height40rpx">
+                <view class="input_title float_left" style="width: 52%">营业执照副本:(限1张)</view>
+              </view>
+              <view class="custom-image-box" style="position: relative">
+                <img :src="!form.yyzzfbzp ||
+                  form.yyzzfbzp == 'null' ||
+                  form.yyzzfbzp == '暂无'
+                  ? '../../../static/unuploadzhizhao.png'
+                  : BASE_URI + '/FileController/download/' + form.yyzzfbzp
+                  " style="color: #777; width: 300rpx; height: 260rpx" placeholder="请输入" />
+              </view>
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height300rpxs">
+                <view class="input_title float_left">荣誉信息(限6张)</view>
+                <textarea :maxlength="2000" placeholder="请输入" v-model="form.honorInformation" type="textarea" style="
+                    height: 270rpx;
+                    background: rgba(249, 249, 249, 1);
+                    padding: 20rpx;
+                    width: calc(100% - 40rpx);
+                  " />
+                <div style="
+                    background: rgba(249, 249, 249, 1);
+                    text-align: right;
+                    padding-right: 10px;
+                    padding-bottom: 10rpx;
+                    margi-bottom: 10rpx;
+                  ">
+                  {{
+                    form.honorInformation ? form.honorInformation.length : 0
+                  }}/2000
+                </div>
+                <view class="custom-image-box" style="margin-top: 20rpx; display: flex">
+                  <img v-for="item in form.ryxxzp" :key="item" :src="BASE_URI + '/FileController/download/' + item"
+                    class="idclass margin12rpx float_left" placeholder="请输入" />
+                </view>
+              </view>
+
+              <view class="width100 mt24rpx padb24rpx border_bottom_ccc list_date" style="display: flex">
+                <view class="input_title float_left">关联企业:</view>
+                <div style="color: #777; width: 60%" class="float_left">
+                  {{ form.associationCompanyName }}
+                </div>
+              </view>
+            </div>
+          </uni-collapse-item>
+        </uni-collapse>
+      </div>
+      <div class="list-row" style="padding-top: 0">
+        <uni-collapse v-model="value2" style="width: 100%">
+          <uni-collapse-item title="关联社会载体" :open="true" @change="selectItems">
+            <view slot="title" class="uni-collapse-item__title-text">关联社会载体
+            </view>
+            <div style="height: auto">
+              <div class="form_row pdt32 pdb32 border_bottom_ccc width100" style="display: flex; height: auto">
+                <div class="width30 first_title">自有</div>
+                <div style="width: 60%" class="float_left font28rpx">
+                  {{
+                    form.socialCarrierStrName
+                      ? form.socialCarrierStrName
+                      : "暂无"
+                  }}
+                </div>
+              </div>
+
+              <div class="form_row pdt32 pdb32 border_bottom_ccc width100" style="display: flex; height: auto">
+                <div class="width30 first_title">租赁</div>
+                <div style="width: 60%" class="float_left font28rpx">
+                  {{
+                    form.socialCarrierLeaseStrName
+                      ? form.socialCarrierLeaseStrName
+                      : "暂无"
+                  }}
+                </div>
+              </div>
+
+              <div class="form_row pdt32 pdb32 border_bottom_ccc width100" style="display: flex; height: auto">
+                <div class="width30 first_title">未确定</div>
+                <div style="width: 60%" class="float_left font28rpx">
+                  {{
+                    form.socialCarrierNoTrueName
+                      ? form.socialCarrierNoTrueName
+                      : "暂无"
+                  }}
+                </div>
+              </div>
+            </div>
+          </uni-collapse-item>
+        </uni-collapse>
+      </div>
+      <div class="list-row" style="padding-top: 0">
+        <uni-collapse v-model="value2" style="width: 100%">
+          <uni-collapse-item title="关联自有载体" :open="true" @change="selectItems">
+            <view slot="title" class="uni-collapse-item__title-text">关联自有载体
+            </view>
+            <div style="height: auto">
+              <div class="form_row pdt32 pdb32 border_bottom_ccc width100" style="display: flex; height: auto">
+                <div class="width30 first_title">有合同</div>
+                <div style="width: 60%" class="float_left font28rpx">
+                  {{
+                    !form.socialCarrierName ? "暂无" : form.socialCarrierName
+                  }}
+                </div>
+              </div>
+              <div class="form_row pdt32 pdb32 border_bottom_ccc width100" style="display: flex; height: auto">
+                <div class="width30 first_title">无合同</div>
+                <div style="width: 60%" class="float_left font28rpx">
+                  {{
+                    form.contractCarrierNoStrName
+                      ? form.contractCarrierNoStrName
+                      : "暂无"
+                  }}
+                </div>
+              </div>
+            </div>
+          </uni-collapse-item>
+        </uni-collapse>
+      </div>
+      <!-- <div class="list-row" style="padding-top: 0">
+        <uni-collapse v-model="value1" style="width: 100%">
+          <uni-collapse-item
+            title="走访信息"
+            :open="true"
+            @change="selectItems"
+          >
+            <div
+              style="height: auto; margin: 32rpx 0 32rpx 0"
+              v-for="item in interviewList"
+              :key="item.id"
+            >
+              <view
+                class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx"
+              >
+                <view class="input_title float_left">走访时间:</view>
+                <input
+                  disabled="true"
+                  style="color: #777"
+                  class="input_value float_left"
+                  placeholder="暂无"
+                  v-model="item.interviewTime"
+                />
+              </view>
+
+              <view
+                class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx"
+              >
+                <view class="input_title float_left">走访类型:</view>
+                <div
+                  disabled="true"
+                  style="color: #777"
+                  class="input_value float_left"
+                  placeholder="暂无"
+                >
+                  {{ getDicTypeZoufang(item.interviewType) }}
+                </div>
+              </view>
+
+              <view
+                class="width100 mt24rpx padb24rpx border_bottom_ccc list_date"
+                style="display: flex"
+              >
+                <view class="input_title float_left">走访记录:</view>
+                <div style="color: #777; width: 60%" class="float_left">
+                  {{ item.interviewRecord }}
+                </div>
+              </view>
+
+              <view
+                class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx"
+              >
+                <view class="input_title float_left">是否需要处理:</view>
+
+                <div class="input_value float_left">
+                  <span style="color: #777" v-if="item.isStatus == 2">是</span>
+                  <span style="color: #777" v-if="item.isStatus == 1">否</span>
+                </div>
+              </view>
+
+              <view
+                v-if="item.isStatus == 2"
+                class="width100 mt24rpx padb24rpx border_bottom_ccc list_date height40rpx"
+              >
+                <view class="input_title float_left">处理人:</view>
+                <input
+                  disabled="true"
+                  style="color: #777"
+                  class="input_value float_left"
+                  placeholder="暂无"
+                  v-model="item.handleUserName"
+                />
+              </view>
+
+              <view
+                v-if="item.isStatus == 2"
+                class="width100 mt24rpx padb24rpx border_bottom_ccc list_date"
+                style="display: flex"
+              >
+                <view class="input_title float_left">处理结果:</view>
+
+                <div style="color: #777; width: 60%" class="float_left">
+                  {{
+                    !item.handleResult || item.handleResult == "null"
+                      ? ""
+                      : item.handleResult
+                  }}
+                </div>
+              </view>
+              <div
+                color="#1D18BC"
+                class="dengjibutton"
+                @click="openHandleReportDialog(item)"
+                v-if="
+                  item.isStatus == 2 &&
+                  !item.handleUserName &&
+                  !item.handleResult
+                "
+              >
+                处理登记
+              </div>
+              <div
+                color="#1D18BC"
+                class="dengjibutton"
+                style="background: #e6e8e9"
+                v-if="
+                  item.isStatus != 2 ||
+                  (item.handleUserName && item.handleResult)
+                "
+              >
+                无需处理
+              </div>
+            </div>
+          </uni-collapse-item>
+        </uni-collapse>
+      </div> -->
+    </div>
+    <handle-report ref="handleReport" @changeActive="changeActive" />
+  </div>
+</template>
+
+<script>
+import {
+  getCompanyHouseDetails,
+  getByCodes,
+  getCompanyTagsByQybq,
+  interviewEscalationListAll,
+  findCompanyTags,
+  selectByCompanyId,
+  getRoomNameByCompanyId,
+  getAreaByIds
+} from "@/js_sdk/http";
+import handleReport from "../companyreport/components/handlereport.vue";
+export default {
+  components: {
+    handleReport,
+  },
+  data() {
+    return {
+
+      BASE_URI: this.$constant.BASE_URI,
+      id: "",
+      qymcString: [],
+      dic_SelectList: {},
+      interviewList: [],
+      dic_key: [
+        "MNP_BUILDING_TYPE",
+        "SETTLE_IN_STATUS",
+        "interviewType",
+        "CURRENCY",
+      ],
+      activeNames: [],
+      StatusBar: 0,
+      search: {
+        pageSize: 10,
+        pageNum: 1,
+      },
+      form: {
+        id: "",
+        settleInType: null,
+        socialCarrierName: "123123",
+      },
+      // value: true,
+      value1: true,
+      value2: true,
+      list: [],
+      value: ["0"],
+      modeIndex: -1,
+      styleIndex: -1,
+      current: 0,
+      mode: "default",
+      dotsStyles: {},
+      swiperDotIndex: 0,
+      jydzAry: []
+    };
+  },
+
+  onLoad(option) {
+    try {
+      this.id = option.id;
+      this.getByCodes();
+    } catch (error) {
+      console.log(error);
+    }
+  },
+  onShow() {
+    this.findCompanyTags(this.id);
+  },
+  methods: {
+    async getRoomNameByCompanyId() {
+      let socialCarrierName = await getRoomNameByCompanyId({
+        companyId: this.id,
+      });
+      console.log('getRoomNameByCompanyId', socialCarrierName)
+      this.form.socialCarrierName = socialCarrierName;
+      let form = { ...this.form }
+      this.form = {}
+      this.form = form
+    },
+    async selectByCompanyId1() {
+      let zaiti = await selectByCompanyId({ companyId: this.id });
+      console.log("zaitizaitizaitizaiti", zaiti);
+      let socialCarrierStr = [];
+      let socialCarrierStrName = [];
+      let socialCarrierLeaseStr = [];
+      let socialCarrierLeaseStrName = [];
+      let socialCarrierNoTrue = [];
+      let socialCarrierNoTrueName = [];
+      let contractCarrierNoStr = [];
+      let contractCarrierNoStrName = [];
+      for (let i = 0; i < zaiti.length; i++) {
+        let item = zaiti[i];
+        console.log(item.propertyNature, item.socialType);
+        if (item.propertyNature === "2" && item.socialType === "1") {
+          socialCarrierStr.push(item.houseId);
+          socialCarrierStrName.push(
+            item.discName + item.groupName + item.buildName + item.houseName
+          );
+        }
+        if (item.propertyNature === "2" && item.socialType === "2") {
+          socialCarrierLeaseStr.push(item.houseId);
+          socialCarrierLeaseStrName.push(
+            item.discName + item.groupName + item.buildName + item.houseName
+          );
+        }
+        if (item.propertyNature === "2" && item.socialType === "3") {
+          socialCarrierNoTrue.push(item.houseId);
+          socialCarrierNoTrueName.push(
+            item.discName + item.groupName + item.buildName + item.houseName
+          );
+        }
+        if (item.propertyNature === "1" && item.ownType === "2") {
+          contractCarrierNoStr.push(item.houseId);
+          contractCarrierNoStrName.push(
+            item.discName + item.groupName + item.buildName + item.houseName
+          );
+        }
+      }
+      this.form.socialCarrierStr = socialCarrierStr.join(",");
+      this.form.socialCarrierStrName = socialCarrierStrName.join(",");
+      this.form.socialCarrierLeaseStr = socialCarrierLeaseStr.join(",");
+      this.form.socialCarrierLeaseStrName = socialCarrierLeaseStrName.join(",");
+      this.form.socialCarrierNoTrue = socialCarrierNoTrue.join(",");
+      this.form.socialCarrierNoTrueName = socialCarrierNoTrueName.join(",");
+      this.form.contractCarrierNoStr = contractCarrierNoStr.join(",");
+      this.form.contractCarrierNoStrName = contractCarrierNoStrName.join(",");
+      console.log(this.form);
+    },
+    async findCompanyTags(id) {
+      let data = await findCompanyTags(id);
+      this.qymcString = data.map((e) => {
+        return e.tagName;
+      });
+    },
+    jumpEditCompanyDetails(e) {
+      uni.navigateTo({
+        url: "/pages/subPackages/companyDetailsEdit/companyDetailsEdit?id=" + e,
+      });
+    },
+    jumpDeleteTgas() {
+      uni.navigateTo({
+        url: "/pages/subPackages/companyTagsDelete/index?id=" + this.form.id,
+      });
+    },
+    jumpChosseTags() {
+      try {
+        uni.navigateTo({
+          url: "/pages/subPackages/chooseCompanyTags/index?id=" + this.form.id,
+        });
+      } catch (error) { }
+    },
+    openHandleReportDialog(item) {
+      let that = this;
+      that.$refs.handleReport.openDianlog(item);
+    },
+    getDicTypeZoufang(value) {
+      if (!value && this.dic_SelectList.interviewType) return;
+      let interviewType = this.dic_SelectList.interviewType;
+      let index = interviewType.findIndex((e) => e.value == value);
+      if (index != -1) return interviewType[index].label;
+    },
+    getDicType(type, value) {
+      if (type == "money" && this.dic_SelectList.CURRENCY) {
+        let CURRENCY = this.dic_SelectList.CURRENCY;
+        let index = CURRENCY.findIndex((e) => e.value == value);
+
+        if (index != -1) return CURRENCY[index].label;
+        else return "暂无";
+      }
+      if (type == "type" && this.dic_SelectList.MNP_BUILDING_TYPE) {
+        if (value) {
+          let MNP_BUILDING_TYPE = this.dic_SelectList.MNP_BUILDING_TYPE;
+          let index = MNP_BUILDING_TYPE.findIndex((e) => e.value == value);
+          if (index != -1) {
+            return MNP_BUILDING_TYPE[index].label;
+          } else return "暂无";
+        } else {
+          return "";
+        }
+      }
+      if (type == "zt" && this.dic_SelectList.SETTLE_IN_STATUS) {
+        // console.log('entryStatusentryStatusentryStatusentryStatusentryStatusentryStatusentryStatusentryStatusentryStatus',value)
+        // console.log('entryStatusentryStatusentryStatusentryStatusentryStatusentryStatusentryStatusentryStatusentryStatus',this.dic_SelectList.SETTLE_IN_STATUS)
+
+        let SETTLE_IN_STATUS = this.dic_SelectList.SETTLE_IN_STATUS;
+        let index = SETTLE_IN_STATUS.findIndex((e) => e.value == value);
+        if (index != -1) return SETTLE_IN_STATUS[index].label;
+        else return "暂无";
+      }
+    },
+    async getByCodes() {
+      try {
+        this.search.pageNum = 1;
+        let data = await getByCodes(JSON.stringify(this.dic_key));
+
+        this.dic_SelectList = this.$common.handleDicList(data);
+        let interviewList = await interviewEscalationListAll(this.id);
+        this.getCompanyHouseDetails(this.id);
+
+        this.interviewList = interviewList;
+      } catch (error) {
+        console.log(error);
+      }
+    },
+
+    async changeActive() {
+      let interviewList = await interviewEscalationListAll(this.id);
+      this.interviewList = interviewList;
+    },
+    selectItems(e) {
+      this.$nextTick(() => {
+        this.$refs.collapse.resize();
+      });
+    },
+    choosefrsfzh_zhenmian() {
+      let that = this;
+
+      uni.previewImage({
+        urls: [
+          that.BASE_URI +
+          "/FileController/download/" +
+          that.form.frsfzh_zhenmian,
+        ],
+        longPressActions: {
+          itemList: ["发送给朋友", "保存图片", "收藏"],
+          success: function (data) { },
+          fail: function (err) { },
+        },
+      });
+    },
+    choosefrsfzh_fanmian() {
+      let that = this;
+
+      uni.previewImage({
+        urls: [
+          that.BASE_URI +
+          "/FileController/download/" +
+          that.form.frsfzh_fanmian,
+        ],
+        longPressActions: {
+          itemList: ["发送给朋友", "保存图片", "收藏"],
+          success: function (data) { },
+          fail: function (err) { },
+        },
+      });
+    },
+    async getCompanyHouseDetails(e) {
+      try {
+        let that = this;
+        let detail = await getCompanyHouseDetails(e);
+        let qymcString = await getCompanyTagsByQybq(detail.data.qybq);
+        if (detail.data.jydz) {
+          const jydzAry = detail.data.jydzStr.split(',').map((e) => {
+            return {
+              name: e
+            }
+          })
+          const jydzIdAry = detail.data.jydz.split(',')
+          for (let i = 0; i < jydzIdAry.length; i++) {
+            jydzAry[i].id = jydzIdAry[i]
+            console.log(jydzIdAry)
+            console.log('jydzIdAry[i].id', jydzIdAry[i])
+            getAreaByIds({
+              ids: jydzIdAry[i]
+            }).then((e) => {
+              jydzAry[i].name += `;${e}㎡`
+            })
+          }
+          this.jydzAry = jydzAry
+          console.log(jydzAry)
+        } else {
+          this.jydzAry = []
+        }
+        that.findCompanyTags(e);
+        that.form = detail.data;
+        console.log(detail.data.frsfzh);
+        that.form.qymcString = qymcString;
+        console.log(that.form.jyfw.split(","));
+        that.form.jyfw = that.form.jyfw.split(",");
+        if (detail.data.ryxxzp && detail.data.ryxxzp.length > 0) {
+          that.form.ryxxzp = detail.data.ryxxzp.split(",");
+        }
+        if (detail.data.frsfzh && detail.data.frsfzh.length > 0) {
+          let sfzlist = detail.data.frsfzh.split(",");
+          that.form.frsfzh_fanmian = sfzlist[0];
+          that.form.frsfzh_zhenmian = sfzlist[1];
+          that.$forceUpdate();
+        }
+
+        for (const key in that.form) {
+          if (that.form[key] == null || that.form[key] == "null") {
+            //   that.form[key] == undefined;
+            that.form[key] = "暂无";
+          }
+        }
+        that.selectByCompanyId1();
+        this.getRoomNameByCompanyId();
+        that.$forceUpdate();
+      } catch (error) { }
+    },
+    onChange(event) {
+      this.activeNames = event.detail;
+    },
+  },
+};
+</script>
+<style scoped lang="scss">
+.chaochuyincang {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+.form_row {
+  height: 40rpx;
+  font-weight: 400;
+  font-size: 24rpx;
+}
+
+.dengjibutton {
+  margin-top: 24rpx;
+  margin-left: 60rpx;
+  margin-right: 60rpx;
+  width: calc(100% - 120rpx);
+  height: 60rpx;
+  text-align: center;
+  background: #1d18bc;
+  color: white;
+  line-height: 60rpx;
+}
+
+.housedetails {
+  margin-bottom: 200rpx;
+}
+
+.housedetails {
+  .detailstitle {
+    display: flex;
+    font-size: 30rpx;
+    font-weight: 500;
+    color: #333333;
+    padding-bottom: 16rpx;
+  }
+
+  .typestitle {
+    display: flex;
+    font-size: 24rpx;
+    font-weight: 500;
+    padding-bottom: 16rpx;
+    margin-bottom: 16rpx;
+  }
+}
+</style>
+<style lang="scss">
+::v-deep .is-open+.uni-collapse-item__wrap {
+  height: auto !important;
+}
+
+::v-deep .uni-collapse-item__wrap-content {
+  height: auto !important;
+}
+
+.pageconfig {
+  background: #ffffff;
+  padding: 32rpx;
+}
+
+.input_title {
+  min-width: 40%;
+  font-size: 28rpx;
+  height: 40rpx;
+  line-height: 40rpx;
+  color: #333333;
+}
+
+.input_value {
+  //   width: 60%;
+  font-size: 28rpx;
+  height: 40rpx;
+  line-height: 40rpx;
+  color: #777777;
+}
+
+.uni-collapse-item__title-box {
+  padding: 0 !important;
+}
+
+.uni-collapse-item__title-text {
+  color: #1d18bc !important;
+  font-size: 32rpx !important;
+  margin: 32rpx 0;
+  font-weight: bold;
+}
+
+.idclass {
+  width: 147rpx;
+  height: 100rpx;
+}
+</style>

+ 218 - 0
pages/subPackages/companyHouseSee/companyHouseSee.vue

@@ -0,0 +1,218 @@
+<template>
+  <div class="companyhouse">
+    <div class="searchbox">
+      <van-row>
+        <van-col :span="24">
+          <uni-search-bar placeholder="请输入公司名称" @confirm="confirm" clearButton="none" cancelButton="none"
+            v-model="search.qymc"></uni-search-bar>
+        </van-col>
+        <!-- <van-col :span="2">
+          <img @click="jumpAddCompanyPage()" src="../../../static/add_company.png"
+            style="height: 50rpx; width: 50rpx; margin-top: 25rpx" alt="" />
+        </van-col> -->
+      </van-row>
+    </div>
+    <van-tabs :active="active" @change="onChange">
+      <van-tab title="全部" :name="null"></van-tab>
+      <van-tab title="在园" :name="1"></van-tab>
+      <van-tab title="挂靠" :name="2"></van-tab>
+      <van-tab title="异地生产" :name="3"></van-tab>
+      <van-tab title="飞地" :name="4"></van-tab>
+    </van-tabs>
+    <div style="display: flex; background: white; padding: 0rpx 16rpx">
+      <uni-data-checkbox v-model="entryArray" mode="tag" :multiple="true" :localdata="dic_SelectList.SETTLE_IN_STATUS"
+        selectedTextColor="#1D18BC" selectedColor="rgba(29,24,188,0.05);" @change="getCompanyList">
+      </uni-data-checkbox>
+    </div>
+    <div class="list">
+      <div v-if="companyList.length != 0">
+        <div class="list-row" v-for="(item, index) in companyList" :key="index">
+          <div class="cell_1 width90">
+            <div class="width70 height44rpx mb8rpx float_left">
+              <div class="first_title chaochuyincang">{{ item.qymc }}</div>
+            </div>
+            <div class="width30 height44rpx mb8rpx float_left" @click="jumpPage(item.id)">
+              <div class="roomstatus1 txt_center" style="font-size: 24rpx">
+                {{ getDicType(item.settleInType) }}
+              </div>
+            </div>
+            <div class="width100 height40rpx mb8rpx clear_both">
+              <div class="second_title width50 height40rpx float_left" style="
+                  overflow: hidden;
+                  text-overflow: ellipsis;
+                  white-space: nowrap;
+                ">
+                所属楼盘:{{
+                  item.area == null || !item.area ? "未知" : item.area
+                }}
+              </div>
+              <div @click="jumpPage(item.id)" class="second_title_1 width50 height40rpx float_left">
+                注册资本:{{ !item.zczj ? "暂无" : item.zczj + "万" }}
+              </div>
+            </div>
+            <div @click="jumpPage(item.id)" class="width100 height28rpx font24rpx fontcolor251FCA chaochuyincang">
+              {{ item.qybq == null || !item.qybq ? "暂无标签" : item.qybq }}
+            </div>
+          </div>
+          <div class="cell_3 width10" @click="jumpPage(item.id)">
+            <img src="../../../static/mine/youjiantou.png" alt="" />
+          </div>
+        </div>
+      </div>
+      <div v-else>
+        <van-empty class="disblock marginauto" style="background: white" description="暂无数据" />
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { listVo, getByCodes, getUserLocalStorageInfo } from "@/js_sdk/http";
+import vanEmpty from "../../../wxcomponents/weapp/dist/empty/index";
+
+export default {
+  components: {
+    vanEmpty,
+  },
+  data() {
+    return {
+      entryArray: [],
+      dic_key: ["MNP_BUILDING_TYPE", "SETTLE_IN_STATUS"],
+      dic_SelectList: {},
+      active: 0,
+      form: {
+        entryStatus: [],
+      },
+      statusList: [
+        { label: "全部", value: null },
+        { label: "在园", value: "1" },
+        { label: "挂靠", value: "2" },
+        { label: "异地生产", value: "3" },
+        { label: "飞地", value: "4" },
+      ],
+      companyList: [],
+      search: {
+        pageSize: 10,
+        userId: "",
+        pageNum: 1,
+      },
+    };
+  },
+  onShow() {
+    this.search.userId = getUserLocalStorageInfo().user.id;
+    this.getByCodes();
+    this.getCompanyList();
+  },
+  methods: {
+    async getMoreListData() {
+      let that = this;
+
+      that.search.pageNum = that.search.pageNum + 1;
+      let list = await listVo(that.search);
+
+      if (list.rows == 0) {
+        that.$showToast("没有更多数据了");
+      } else {
+        list.rows.forEach((e) => {
+          that.companyList.push(e);
+        });
+      }
+    },
+    onReachBottom() {
+      this.getMoreListData();
+    }, //下拉执行的时候触发 (下拉刷新)
+    onChange(e) {
+      this.search.settleInType = e.detail.name == null ? "" : e.detail.name;
+      this.getCompanyList();
+    },
+    getDicType(value) {
+      if (this.dic_SelectList.MNP_BUILDING_TYPE) {
+        let MNP_BUILDING_TYPE = this.dic_SelectList.MNP_BUILDING_TYPE;
+        let index = MNP_BUILDING_TYPE.findIndex((e) => e.value == value);
+
+        if (index != -1) return MNP_BUILDING_TYPE[index].label;
+        else return "暂无";
+      }
+    },
+    async getByCodes() {
+      this.search.pageNum = 1;
+      let data = await getByCodes(JSON.stringify(this.dic_key));
+      this.dic_SelectList = this.$common.handleDicList(data);
+      this.dic_SelectList.SETTLE_IN_STATUS =
+        this.dic_SelectList.SETTLE_IN_STATUS.map((e) => {
+          return {
+            text: e.label,
+            value: e.value,
+          };
+        });
+    },
+    async getCompanyList() {
+      this.search.entryStatus = this.entryArray.toString();
+      this.search.pageSize = 10;
+      this.search.pageNum = 1;
+      let list = await listVo(this.search);
+
+      this.companyList = list.rows;
+    },
+    jumpAddCompanyPage() {
+      uni.navigateTo({
+        url: "/pages/subPackages/addCompany/addCompany",
+      });
+    },
+    blur(e) { },
+    focus(e) {
+      //   pages / subPackages / merchants / merchants;
+    },
+    input(e) { },
+    cancel(e) { },
+    change(e) { },
+    clear(e) { },
+    confirm(e) {
+      this.getCompanyList();
+    },
+    jumpPage(e) {
+      uni.navigateTo({
+        url: "/pages/subPackages/companyDetailsSee/companyDetailsSee?id=" + e,
+      });
+    },
+  },
+};
+</script>
+
+
+<style lang="scss">
+.searchbox {
+  display: block;
+  background: white;
+}
+
+.chaochuyincang {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+.labelcolmt26 {
+  input {
+    font-size: 24rpx;
+    border-radius: 8rpx 8rpx 8rpx 8rpx;
+    border: 2rpx solid #cccccc;
+    text-align: center;
+  }
+
+  .van-col {
+    margin-top: 26rpx !important;
+  }
+
+  label {
+    color: #333333;
+    font-size: 30rpx;
+    margin: 0;
+    margin-top: 0 !important;
+  }
+
+  .uni-data-checklist {
+    margin-top: -10rpx !important;
+  }
+}
+</style>

+ 205 - 0
pages/subPackages/password/md5.js

@@ -0,0 +1,205 @@
+/* 
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message 
+ * Digest Algorithm, as defined in RFC 1321. 
+ * Version 1.1 Copyright (C) Paul Johnston 1999 - 2002. 
+ * Code also contributed by Greg Holt 
+ * See http://pajhome.org.uk/site/legal.html for details. 
+ */
+
+/* 
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally 
+ * to work around bugs in some JS interpreters. 
+ */
+function safe_add(x, y) {
+    var lsw = (x & 0xFFFF) + (y & 0xFFFF)
+    var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
+    return (msw << 16) | (lsw & 0xFFFF)
+}
+
+/* 
+ * Bitwise rotate a 32-bit number to the left. 
+ */
+function rol(num, cnt) {
+    return (num << cnt) | (num >>> (32 - cnt))
+}
+
+/* 
+ * These functions implement the four basic operations the algorithm uses. 
+ */
+function cmn(q, a, b, x, s, t) {
+    return safe_add(rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
+}
+function ff(a, b, c, d, x, s, t) {
+    return cmn((b & c) | ((~b) & d), a, b, x, s, t)
+}
+function gg(a, b, c, d, x, s, t) {
+    return cmn((b & d) | (c & (~d)), a, b, x, s, t)
+}
+function hh(a, b, c, d, x, s, t) {
+    return cmn(b ^ c ^ d, a, b, x, s, t)
+}
+function ii(a, b, c, d, x, s, t) {
+    return cmn(c ^ (b | (~d)), a, b, x, s, t)
+}
+
+/* 
+ * Calculate the MD5 of an array of little-endian words, producing an array 
+ * of little-endian words. 
+ */
+function coreMD5(x) {
+    var a = 1732584193
+    var b = -271733879
+    var c = -1732584194
+    var d = 271733878
+
+    for (var i = 0; i < x.length; i += 16) {
+        var olda = a
+        var oldb = b
+        var oldc = c
+        var oldd = d
+
+        a = ff(a, b, c, d, x[i + 0], 7, -680876936)
+        d = ff(d, a, b, c, x[i + 1], 12, -389564586)
+        c = ff(c, d, a, b, x[i + 2], 17, 606105819)
+        b = ff(b, c, d, a, x[i + 3], 22, -1044525330)
+        a = ff(a, b, c, d, x[i + 4], 7, -176418897)
+        d = ff(d, a, b, c, x[i + 5], 12, 1200080426)
+        c = ff(c, d, a, b, x[i + 6], 17, -1473231341)
+        b = ff(b, c, d, a, x[i + 7], 22, -45705983)
+        a = ff(a, b, c, d, x[i + 8], 7, 1770035416)
+        d = ff(d, a, b, c, x[i + 9], 12, -1958414417)
+        c = ff(c, d, a, b, x[i + 10], 17, -42063)
+        b = ff(b, c, d, a, x[i + 11], 22, -1990404162)
+        a = ff(a, b, c, d, x[i + 12], 7, 1804603682)
+        d = ff(d, a, b, c, x[i + 13], 12, -40341101)
+        c = ff(c, d, a, b, x[i + 14], 17, -1502002290)
+        b = ff(b, c, d, a, x[i + 15], 22, 1236535329)
+
+        a = gg(a, b, c, d, x[i + 1], 5, -165796510)
+        d = gg(d, a, b, c, x[i + 6], 9, -1069501632)
+        c = gg(c, d, a, b, x[i + 11], 14, 643717713)
+        b = gg(b, c, d, a, x[i + 0], 20, -373897302)
+        a = gg(a, b, c, d, x[i + 5], 5, -701558691)
+        d = gg(d, a, b, c, x[i + 10], 9, 38016083)
+        c = gg(c, d, a, b, x[i + 15], 14, -660478335)
+        b = gg(b, c, d, a, x[i + 4], 20, -405537848)
+        a = gg(a, b, c, d, x[i + 9], 5, 568446438)
+        d = gg(d, a, b, c, x[i + 14], 9, -1019803690)
+        c = gg(c, d, a, b, x[i + 3], 14, -187363961)
+        b = gg(b, c, d, a, x[i + 8], 20, 1163531501)
+        a = gg(a, b, c, d, x[i + 13], 5, -1444681467)
+        d = gg(d, a, b, c, x[i + 2], 9, -51403784)
+        c = gg(c, d, a, b, x[i + 7], 14, 1735328473)
+        b = gg(b, c, d, a, x[i + 12], 20, -1926607734)
+
+        a = hh(a, b, c, d, x[i + 5], 4, -378558)
+        d = hh(d, a, b, c, x[i + 8], 11, -2022574463)
+        c = hh(c, d, a, b, x[i + 11], 16, 1839030562)
+        b = hh(b, c, d, a, x[i + 14], 23, -35309556)
+        a = hh(a, b, c, d, x[i + 1], 4, -1530992060)
+        d = hh(d, a, b, c, x[i + 4], 11, 1272893353)
+        c = hh(c, d, a, b, x[i + 7], 16, -155497632)
+        b = hh(b, c, d, a, x[i + 10], 23, -1094730640)
+        a = hh(a, b, c, d, x[i + 13], 4, 681279174)
+        d = hh(d, a, b, c, x[i + 0], 11, -358537222)
+        c = hh(c, d, a, b, x[i + 3], 16, -722521979)
+        b = hh(b, c, d, a, x[i + 6], 23, 76029189)
+        a = hh(a, b, c, d, x[i + 9], 4, -640364487)
+        d = hh(d, a, b, c, x[i + 12], 11, -421815835)
+        c = hh(c, d, a, b, x[i + 15], 16, 530742520)
+        b = hh(b, c, d, a, x[i + 2], 23, -995338651)
+
+        a = ii(a, b, c, d, x[i + 0], 6, -198630844)
+        d = ii(d, a, b, c, x[i + 7], 10, 1126891415)
+        c = ii(c, d, a, b, x[i + 14], 15, -1416354905)
+        b = ii(b, c, d, a, x[i + 5], 21, -57434055)
+        a = ii(a, b, c, d, x[i + 12], 6, 1700485571)
+        d = ii(d, a, b, c, x[i + 3], 10, -1894986606)
+        c = ii(c, d, a, b, x[i + 10], 15, -1051523)
+        b = ii(b, c, d, a, x[i + 1], 21, -2054922799)
+        a = ii(a, b, c, d, x[i + 8], 6, 1873313359)
+        d = ii(d, a, b, c, x[i + 15], 10, -30611744)
+        c = ii(c, d, a, b, x[i + 6], 15, -1560198380)
+        b = ii(b, c, d, a, x[i + 13], 21, 1309151649)
+        a = ii(a, b, c, d, x[i + 4], 6, -145523070)
+        d = ii(d, a, b, c, x[i + 11], 10, -1120210379)
+        c = ii(c, d, a, b, x[i + 2], 15, 718787259)
+        b = ii(b, c, d, a, x[i + 9], 21, -343485551)
+
+        a = safe_add(a, olda)
+        b = safe_add(b, oldb)
+        c = safe_add(c, oldc)
+        d = safe_add(d, oldd)
+    }
+    return [a, b, c, d]
+}
+
+/* 
+ * Convert an array of little-endian words to a hex string. 
+ */
+function binl2hex(binarray) {
+    var hex_tab = "0123456789abcdef"
+    var str = ""
+    for (var i = 0; i < binarray.length * 4; i++) {
+        str += hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8 + 4)) & 0xF) +
+            hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8)) & 0xF)
+    }
+    return str
+}
+
+/* 
+ * Convert an array of little-endian words to a base64 encoded string. 
+ */
+function binl2b64(binarray) {
+    var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
+    var str = ""
+    for (var i = 0; i < binarray.length * 32; i += 6) {
+        str += tab.charAt(((binarray[i >> 5] << (i % 32)) & 0x3F) |
+            ((binarray[i >> 5 + 1] >> (32 - i % 32)) & 0x3F))
+    }
+    return str
+}
+
+/* 
+ * Convert an 8-bit character string to a sequence of 16-word blocks, stored 
+ * as an array, and append appropriate padding for MD4/5 calculation. 
+ * If any of the characters are >255, the high byte is silently ignored. 
+ */
+function str2binl(str) {
+    var nblk = ((str.length + 8) >> 6) + 1 // number of 16-word blocks  
+    var blks = new Array(nblk * 16)
+    for (var i = 0; i < nblk * 16; i++) blks[i] = 0
+    for (var i = 0; i < str.length; i++)
+        blks[i >> 2] |= (str.charCodeAt(i) & 0xFF) << ((i % 4) * 8)
+    blks[i >> 2] |= 0x80 << ((i % 4) * 8)
+    blks[nblk * 16 - 2] = str.length * 8
+    return blks
+}
+
+/* 
+ * Convert a wide-character string to a sequence of 16-word blocks, stored as 
+ * an array, and append appropriate padding for MD4/5 calculation. 
+ */
+function strw2binl(str) {
+    var nblk = ((str.length + 4) >> 5) + 1 // number of 16-word blocks  
+    var blks = new Array(nblk * 16)
+    for (var i = 0; i < nblk * 16; i++) blks[i] = 0
+    for (var i = 0; i < str.length; i++)
+        blks[i >> 1] |= str.charCodeAt(i) << ((i % 2) * 16)
+    blks[i >> 1] |= 0x80 << ((i % 2) * 16)
+    blks[nblk * 16 - 2] = str.length * 16
+    return blks
+}
+
+/* 
+ * External interface 
+ */
+function hexMD5(str) { return binl2hex(coreMD5(str2binl(str))) }
+function hexMD5w(str) { return binl2hex(coreMD5(strw2binl(str))) }
+function b64MD5(str) { return binl2b64(coreMD5(str2binl(str))) }
+function b64MD5w(str) { return binl2b64(coreMD5(strw2binl(str))) }
+/* Backward compatibility */
+function calcMD5(str) { return binl2hex(coreMD5(str2binl(str))) }
+module.exports = {
+    hexMD5: hexMD5
+}  

+ 319 - 0
pages/subPackages/serve-confirm/add.vue

@@ -0,0 +1,319 @@
+<template>
+  <div class="repair-box">
+    <div class="repair-content fixed-page-content">
+      <div class="white-box page-1">
+        <div class="page-1-head" @click="goNavigator('repairprocessing-app')">
+          <i class="iconfont icon-daichulihetong"></i>
+          <span>处理记录</span>
+        </div>
+      </div>
+      <div class="white-box page-2">
+        <div class="custom-item-tit">
+          <p class="tit">当前企业</p>
+        </div>
+        <div class="custom-white-box-content">
+          <div class="custom-input-box">
+            <input
+              type="text"
+              maxlength="50px"
+              placeholder="请输入"
+              v-model="companyName"
+            />
+          </div>
+        </div>
+        <div class="cell-item">
+          <p class="label required">您是想</p>
+          <div class="tit">
+            <van-radio-group v-model="form.type">
+              <van-radio name="1" checked-color="#976CEB">报事</van-radio>
+              <van-radio name="2" checked-color="#976CEB">咨询</van-radio>
+            </van-radio-group>
+          </div>
+        </div>
+        <div class="block-cell-item">
+          <p class="label">快捷选择</p>
+          <div class="tit">
+            <ul class="custom-select-list">
+              <li
+                v-for="item in quickList"
+                v-if="item.value !== ''"
+                :key="item.value"
+                :class="{
+                  active: quickSleced.value && item.value === quickSleced.value,
+                }"
+                @click="quickSelect(item)"
+              >
+                {{ item.label }}
+              </li>
+            </ul>
+            <van-field
+              v-model="form.description"
+              rows="4"
+              autosize
+              type="textarea"
+              maxlength="800"
+              placeholder="输入文字进行工单描述"
+              show-word-limit
+            >
+            </van-field>
+          </div>
+        </div>
+      </div>
+      <div class="white-box page-3">
+        <div class="cell-item">
+          <p class="label required">位置</p>
+          <div class="tit">
+            <van-radio-group v-model="form.position">
+              <van-radio
+                :name="item.val"
+                checked-color="#976CEB"
+                v-for="item in positionList"
+                :key="item.val"
+                @change="changePosition(item.val)"
+                >{{ item.label }}</van-radio
+              >
+            </van-radio-group>
+          </div>
+        </div>
+        <div class="block-cell-item">
+          <p class="label">
+            补充说明<span class="tips"
+              >(支持图片/视频上传限20M内,最多6张)</span
+            >
+          </p>
+          <div class="tit">
+            <van-uploader
+              :multiple="true"
+              v-model="fileUrls"
+              :max-count="6"
+              :after-read="afterRead"
+              :before-delete="beforeDelete"
+            >
+            </van-uploader>
+          </div>
+        </div>
+        <div class="cell-item">
+          <p class="label">报事人</p>
+          <p class="tit">{{ form.userId }}</p>
+        </div>
+      </div>
+    </div>
+    <div class="repair-bottom bottom-button">
+      <button class="btn" @click="submit">提交</button>
+    </div>
+  </div>
+</template>
+<script>
+import Base from "@/pages/base/base";
+import axios from "axios";
+import { add } from "../../service/api_repair";
+import { getCompanyById } from "@/service/api_road_show";
+import { Toast } from "vant";
+import auth from "@/service/auth";
+export default {
+  data() {
+    return {
+      dc_key: ["QUICK_SELECTION"],
+      reportTypeSleced: "1",
+      quickSleced: {},
+      quickList: [
+        // {
+        //     value: '1',
+        //     label: '挂件安装'
+        // },
+        // {
+        //     value: '2',
+        //     label: '我要投诉'
+        // },
+        // {
+        //     value: '3',
+        //     label: '疏通管道'
+        // },
+        // {
+        //     value: '4',
+        //     label: '维修线路'
+        // },
+        // {
+        //     value: '5',
+        //     label: '更换灯泡'
+        // },
+        // {
+        //     value: '6',
+        //     label: '网络维修'
+        // },
+        // {
+        //     value: '7',
+        //     label: '保洁服务'
+        // },
+        // {
+        //     value: '8',
+        //     label: '其它维修'
+        // }
+      ],
+      positionSleced: "1",
+      positionList: [
+        {
+          val: "1",
+          label: "室内",
+        },
+        {
+          val: "2",
+          label: "公区",
+        },
+      ],
+      fileUrlList: [],
+      fileUrls: [],
+      companyName: "",
+      form: {
+        groupId: "",
+        companyId: "",
+        type: "1",
+        serviceType: "",
+        description: "",
+        position: "1",
+        userId: auth.currUser().truename + "-" + auth.currUser().phone,
+        fileUrl: "",
+        status: "unAcceptance",
+      },
+    };
+  },
+  mixins: [Base],
+  mounted() {
+    this.initDict(this.dc_key).then((res) => {
+      this.quickList = this.dc_data.QUICK_SELECTION;
+    });
+    getCompanyById({ id: auth.currUser().id, type: "2,3" }).then((res) => {
+      this.form.companyId = res.data.id;
+      this.companyName = res.data.businessName;
+    });
+  },
+  methods: {
+    /**
+     *
+     */
+    quickSelect(item) {
+      if (this.quickSleced.value && this.quickSleced.value === item.value) {
+        this.quickSleced = {};
+      } else {
+        this.quickSleced = item;
+      }
+    },
+    /**
+     * 上传文件
+     */
+    afterRead(file) {
+      if (file instanceof Array) {
+        file.map((v) => {
+          this.uploadImg(v);
+        });
+      } else {
+        this.uploadImg(file);
+      }
+    },
+    beforeDelete(file, detail) {
+      // this.handleImagUrlList = []
+      const vm = this;
+      // name.index代表图片的索引
+      vm.fileUrlList.splice(detail.index, 1);
+      return (file, name) => {
+        const fileIndex = name.index;
+        vm.fileUrlList[detail.index].splice(fileIndex, 1);
+      };
+    },
+    /**
+     * 上传图片
+     */
+    uploadImg(file) {
+      const _this = this;
+      const formParam = new FormData(); // 创建form对象
+      formParam.append("file", file.file); // 通过append向form对象添加数据
+      console.log(formParam.get("file")); // FormData私有类对象,访问不到,可以通过get判断值是否传进去
+      // upload(formParam).then((res) => {
+      //
+      // })
+      const config = {
+        headers: {
+          "Content-Type": "multipart/form-data",
+          "MVVM-Key": String(new Date().getTime()),
+          xx: "anything",
+        }, // 这里是重点,需要和后台沟通好请求头,Content-Type不一定是这个值
+      }; // 添加请求头
+      return new Promise((resolve, reject) => {
+        axios
+          .post(
+            "/smartParkH5Server/wx/fileController/upload",
+            formParam,
+            config
+          )
+          .then((response) => {
+            let files = response.data.data.substring(
+              1,
+              response.data.data.length
+            );
+            files = files.substring(0, files.length - 1);
+            _this.fileUrlList.push(_this.$common.castEval(files));
+          })
+          .catch((err, x) => {
+            reject(err, x);
+          });
+      });
+    },
+    submit() {
+      if (this.quickSleced.value == null || this.quickSleced.value === "") {
+        Toast("请选择服务类型");
+        return;
+      }
+      this.form.groupId = ""; // 园区
+      this.form.fileUrl = JSON.stringify(this.fileUrlList);
+      this.form.userId =
+        auth.currUser().id +
+        "-" +
+        auth.currUser().truename +
+        "-" +
+        auth.currUser().phone;
+      this.form.companyName = this.companyName;
+      this.form.serviceType = this.quickSleced.value;
+      this.form.createdBy = auth.currUser().id;
+      add(this.form).then((res) => {
+        Toast("填报成功");
+        this.$router.push({
+          path: "/repairprocessing-app",
+        });
+      });
+    },
+    changePosition(val) {},
+  },
+};
+</script>
+<style lang="scss" scoped>
+.repair-box {
+  width: 100%;
+  height: 100%;
+  .page-1 {
+    font-size: 30px;
+    color: var(--violetColor2);
+    padding: 30px;
+    box-sizing: border-box;
+    .page-1-head {
+      display: flex;
+      align-items: center;
+      justify-content: flex-end;
+      i {
+        font-size: 38px;
+        margin-right: 10px;
+      }
+    }
+  }
+  .page-2 {
+    .van-cell {
+      padding: 20px;
+      border-radius: 10px;
+      background: $page-color-base;
+      box-sizing: border-box;
+      textarea {
+        height: 60px;
+      }
+    }
+  }
+}
+</style>

+ 662 - 0
pages/subPackages/serve-confirm/detail.vue

@@ -0,0 +1,662 @@
+<template>
+  <div class="repair-detail-box">
+    <div :class="[
+      'repair-content',
+      detailStatus === 'unAcceptance' ? 'fixed-page-content' : 'page-content',
+    ]">
+      <div class="white-box page-1">
+        <div class="cell-item">
+          <p class="label">当前企业</p>
+          <p class="tit">{{ detail.companyName }}</p>
+        </div>
+        <!-- <div class="cell-item">
+          <p class="label">您是想</p>
+          <div class="tit">{{ detail.type === "1" ? "报事" : "咨询" }}</div>
+        </div> -->
+        <div class="cell-item">
+          <p class="label">快捷选择</p>
+          <div class="tit">{{ detail.serviceType }}</div>
+        </div>
+        <div class="block-cell-item">
+          <p class="label">工单描述</p>
+          <div class="tit">
+            <div class="textarea">
+              {{ !detail.description ? "暂无" : detail.description }}
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="white-box page-2">
+        <!-- <div class="cell-item">
+          <p class="label">位置</p>
+          <div class="tit">{{ detail.position === "1" ? "室内" : "公区" }}</div>
+        </div> -->
+        <div class="block-cell-item">
+          <p class="label">补充说明</p>
+          <div class="tit">
+
+            <van-uploader :file-list="explainAnnexList" disabled class="infoUpload"/>
+
+            <!--            <ul class="annex-list-box">-->
+<!--              <li class="annex-item" v-for="(item, index) in explainAnnexList" :key="index">-->
+<!--                {{ item }}-->
+<!--                <img :src="item" alt="" />-->
+<!--              </li>-->
+<!--            </ul>-->
+          </div>
+        </div>
+        <div class="cell-item flex-item">
+          <p class="label">联系方式</p>
+          <p class="tit tel-box">
+            <span>{{ detail.contact }}</span>
+            <!-- {{ detail.phone }} -->
+            <TelNum :num="detail.contact" :showTel="false" v-if="detail.contact && detail.contact.length > 0" />
+          </p>
+        </div>
+        <div class="cell-item flex-item">
+          <p class="label">报事人</p>
+          <p class="tit tel-box">
+            <span>{{ detail.reporter }}</span>
+            <!-- {{ detail.phone }} -->
+            <!-- <TelNum :num="detail.phone" :showTel="false" /> -->
+          </p>
+        </div>
+        <div class="cell-item">
+          <p class="label">报事时间</p>
+          <p class="tit">{{ detail.createdAt }}</p>
+        </div>
+      </div>
+      <div class="white-box page-3 form-part" style="padding-bottom: 120px">
+        <div class="custom-item-tit">
+          <div class="tit">
+            <div style="padding-left: 15rpx;">
+              处理情况
+            </div>
+          </div>
+        </div>
+        <div class="block-cell-item">
+          <p class="label">处理进展</p>
+          <div>
+            <van-steps :active="stepActive" :active-color="'#6600FF'" :steps="processSteps">
+            </van-steps>
+          </div>
+        </div>
+
+        <!-- <div class="cell-item">
+          <p class="label">派单人</p>
+          <p class="tit">{{ dispatchUserId2 }}</p>
+        </div>
+        <div class="cell-item">
+          <p class="label">派单时间</p>
+          <p class="tit">{{ detail.dispatchTime }}</p>
+        </div> -->
+
+        <div class="block-cell-item">
+          <p class="label">备注</p>
+          <div class="tit">
+            <div class="textarea">
+              {{ detail.remark == "null" || detail.remark == "undefind" ? "暂无" : detail.remark }}
+            </div>
+          </div>
+        </div>
+
+        <div class="block-cell-item">
+          <p class="label">
+            处理后拍照{{ detail.status }}<span class="tips">(支持图片上传限20M内,最多6张)</span>
+          </p>
+          <div class="tit">
+            <van-uploader @delete="deleteRYXXZP" :file-list="handleUrlList" :max-count="6" @after-read="afterRead"
+              :disabled="detail.status == 3" :show-upload="true">
+            </van-uploader>
+          </div>
+
+        </div>
+        <div class="custom-item-tit">
+          <div class="tit">
+            <div style="margin-left: 15rpx;">
+              处理说明
+            </div>
+          </div>
+        </div>
+        <div class="custom-textarea-box">
+          <uni-easyinput :disabled="detail.status !== '1'" type="textarea" class="bgcF9F9F9 height218rpx"
+            v-model="detail.handleExplain" autoHeight placeholder="请填写" show-word-limit>
+          </uni-easyinput>
+        </div>
+        <div class="cell-item">
+          <p class="label">结案人</p>
+          <p class="tit">{{ handleUserId2 }}</p>
+        </div>
+
+        <div class="cell-item">
+          <p class="label">结案时间</p>
+          <p class="tit">{{ detail.handleTime ? detail.handleTime : "" }}</p>
+        </div>
+        <div class="custom-item-tit">
+          <div class="tit">
+            <div style="margin-left: 15rpx;">
+              服务确认
+            </div>
+          </div>
+        </div>
+        <div>
+          <div style="margin-bottom: 15rpx;">
+            <van-radio-group :value="confirmForm.status" :disabled="detail.status == 3||detail.status == 4" direction="horizontal" @change="getConfirmFormStatus"
+              bind:change="getConfirmStatus">
+              <van-radio name="3">通过</van-radio>
+              <van-radio name="4">退回</van-radio>
+            </van-radio-group>
+          </div>
+          <div class="custom-textarea-box">
+            <uni-easyinput type="textarea" class="bgcF9F9F9 height218rpx" :disabled="detail.status == 3||detail.status == 4"
+              v-model="confirmForm.confirmRemark" autoHeight placeholder="请填写" show-word-limit>
+            </uni-easyinput>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="repair-bottom bottom-button">
+      <button class=" btn" @click="onConfirm" v-if="detail.status == 2">提交</button>
+    </div>
+  </div>
+</template>
+<script>
+import TelNum from "../../subPackages/components/tel-number";
+import vanRate from "../../../wxcomponents/weapp/dist/rate";
+import {
+  editRepair,
+  getHandleInfoById,
+  getByCodes,
+  getUserLocalStorageInfo, confirmReport
+} from "@/js_sdk/http";
+// import Base from '@/pages/base/base'
+// import { editRepair } from '@/service/api_repair'
+// import { Toast } from 'vant'
+// import auth from '@/service/auth'
+// import axios from 'axios'
+export default {
+  components: {
+    TelNum,
+    vanRate,
+  },
+  data() {
+    return {
+      handleUserId2: "",
+      userId2: "",
+      dispatchUserId2: "",
+      dic_key: ["QUICK_SELECTION", "REPAIR_STATUS"],
+      dic_SelectList: {},
+      detailId: "", // 详情id
+      handleUrlList: [],
+      confirmForm: {
+        status: '3'
+      },
+      fileUrls: [],
+      handleUrls: [],
+      detailStatus: "1", // 1  待派单  2已派单
+      explainAnnexList: [], // 说明附件 type image、图片 video、视频
+      processedAnnexList: [], // 附件 type image、图片 video、视频
+      stepActive: 0, // 当前处理到哪一步
+      processSteps: [
+        {
+          id: 1,
+          status: 1,
+          text: "上报",
+        },
+        {
+          id: 2,
+          status: 1,
+          text: "已受理",
+        },
+        {
+          id: 3,
+          status: 1,
+          text: "已处理",
+        },
+        {
+          id: 4,
+          status: 0,
+          text: "已确认",
+        },
+      ], // 处理流程
+      evaluateVal: 0, // 评分
+      id: "",
+      detail: {},
+      fileUrlList: [],
+      params: {
+        id: "",
+        handleUrl: "",
+        handleTime: "",
+        status: "processed",
+      },
+    };
+  },
+  onLoad(option) {
+    this.id = option.id;
+    this.getByCodes();
+  },
+  methods: {
+    getConfirmFormStatus(e){
+      console.log(e)
+      this.confirmForm.status = e.detail;
+    },
+    getConfirmStatus(e) {
+      console.log(e)
+    },
+    async getByCodes() {
+      let data = await getByCodes(JSON.stringify(this.dic_key));
+      this.dic_SelectList = this.$common.handleDicList(data);
+      this.getDetailById();
+    },
+    onSelect(val) {
+      this.value = val.text;
+      this.params.handleUserId = val.value + "-" + val.text;
+      this.showPicker = false;
+    },
+    async onConfirm() {
+      let that = this
+      if(that.confirmForm.status==4&&(!that.confirmForm.confirmRemark||that.confirmForm.confirmRemark.length==0)){
+        that.$showToast('如选择退回派单请填写原因')
+        return
+      }
+      console.log(that.confirmForm)
+      let confirmForm = {
+        ...that.confirmForm,
+        userId: getUserLocalStorageInfo().user.id,
+        id: that.id,
+        reportRepairId: that.detail.reportRepairId,
+        confirmRemark: that.confirmForm.confirmRemark
+      }
+      let data = await confirmReport(confirmForm)
+      console.log(data)
+      if (data.code == 200) {
+        that.$showToast("提交成功");
+        uni.navigateBack({});
+      }
+    },
+    getDetailById() {
+      const _this = this;
+      getHandleInfoById(_this.id).then((res) => {
+        console.log(res.data);
+        if (res.data) {
+          let det = _this.getItemJson(res.data);
+          this.detail = det;
+          this.detail.handleExplain = det.handleExplain;
+
+          if (det.dispatchUserId != null && det.dispatchUserId !== "") {
+            const test = det.dispatchUserId.split("-");
+            this.dispatchUserId2 = test[1] + "-" + test[2];
+          }
+          if (det.handleUserId != null && det.handleUserId !== "") {
+            this.handleUserId2 = det.handleUserName;
+          }
+
+          this.handleUrlList = det.handleUrlList;
+          console.log("asodmqowndonq", this.handleUrlList);
+          // this.explainAnnexList = det.fileUrlViewList;
+          if(det.fileUrl&&det.fileUrl.length > 0) {
+            this.explainAnnexList = det.fileUrl.split(',').map(e => {
+              return{
+                url:this.$constant.BASE_URI + "/wx/fileController/download/" + e,
+                isImage: true,
+                deletable: false,
+              }
+            });
+          }
+          //   this.processedAnnexList = det.handleUrlList;
+          this.detailStatus = det.status;
+          this.params.remark = det.remark;
+          this.confirmForm.confirmRemark = det.confirmRemark=='null'?'':det.confirmRemark
+          this.confirmForm.status = det.status
+
+        }
+      });
+    },
+    getItemJson: function (item) {
+      // const fileUrls = item.fileUrl ? item.fileUrl.split(",") : [];
+      //
+      // const fileUrlViews = [];
+      // if (fileUrls !== null && fileUrls.length > 0) {
+      //   fileUrls.forEach((item) => {
+      //     item =
+      //       this.$constant.BASE_URI + "/wx/fileController/download/" + item;
+      //     fileUrlViews.push(item);
+      //   });
+      // }
+      // item.fileUrlViewList = fileUrlViews;
+      if (!item.handleTime) {
+        item.handleTime = this.$common.transServDate(new Date());
+      }
+
+      const handleUrls = item.handleUrl ? item.handleUrl.split(",") : [];
+
+      const handleUrlViews = [];
+      if (handleUrls !== null && handleUrls.length > 0) {
+        handleUrls.forEach((item) => {
+          handleUrlViews.push({
+            url:
+              this.$constant.BASE_URI + "/wx/fileController/download/" + item,
+            isImage: true,
+          });
+        });
+      }
+      item.handleUrlList = handleUrlViews;
+      console.log(item);
+      item.serviceType =
+        this.dic_SelectList.QUICK_SELECTION[item.serviceType - 1].label;
+
+      switch (item.status) {
+        // console.log(status)
+        case "0":
+          this.stepActive = 0;
+          break;
+        case "1":
+          this.stepActive = 1;
+          break;
+        case "2":
+          this.stepActive = 2;
+          break;
+        case "3":
+          this.stepActive = 3;
+        case "4":
+          this.stepActive = 4;
+        case "5":
+          this.stepActive = 5;
+          break;
+      }
+
+      return item;
+    },
+    afterRead(event) {
+      let that = this;
+      const { file } = event.detail;
+
+      try {
+        uni.uploadFile({
+          url: that.$constant.BASE_URI + "/wx/fileController/upload",
+          filePath: file.url,
+          name: "file",
+          formData: { user: "test" },
+          success(res) {
+            // 上传完成需要更新 fileList
+            let { data } = JSON.parse(res.data);
+            console.log(data[0]);
+
+            that.handleUrlList.push({
+              id: data[0],
+              url:
+                that.$constant.BASE_URI + "/FileController/download/" + data[0],
+              isImage: true,
+            });
+            that.handleUrlList = [...that.handleUrlList];
+            that.$forceUpdate();
+            console.log(that.fileUrlList);
+          },
+          fail(res) { },
+        });
+      } catch (error) { }
+    },
+    beforeDelete(file, detail) {
+      // this.handleImagUrlList = []
+      const vm = this;
+      // name.index代表图片的索引
+      vm.handleUrls.splice(detail.index, 1);
+      return (file, name) => {
+        const fileIndex = name.index;
+        vm.handleUrls[detail.index].splice(fileIndex, 1);
+      };
+    },
+    /**
+     * 上传图片
+     */
+    uploadImg(file) {
+      const _this = this;
+      const formParam = new FormData(); // 创建form对象
+      formParam.append("file", file.file); // 通过append向form对象添加数据
+      console.log(formParam.get("file")); // FormData私有类对象,访问不到,可以通过get判断值是否传进去
+      // upload(formParam).then((res) => {
+      //
+      // })
+      const config = {
+        headers: {
+          "Content-Type": "multipart/form-data",
+          "MVVM-Key": String(new Date().getTime()),
+          xx: "anything",
+        }, // 这里是重点,需要和后台沟通好请求头,Content-Type不一定是这个值
+      }; // 添加请求头
+      return new Promise((resolve, reject) => {
+        axios
+          .post(
+            "/smartParkH5Server/wx/fileController/upload",
+            formParam,
+            config
+          )
+          .then((response) => {
+            let files = response.data.data.substring(
+              1,
+              response.data.data.length
+            );
+            files = files.substring(0, files.length - 1);
+            _this.handleUrls.push(_this.$common.castEval(files));
+          })
+          .catch((err, x) => {
+            reject(err, x);
+          });
+      });
+    },
+  },
+};
+</script>
+<style lang="scss">
+.infoUpload{
+  .van-uploader__upload--disabled{
+    display: none;
+  }
+}
+.bottom-button {
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  z-index: 100;
+  height: 160rpx;
+  padding: 35rpx 30rpx;
+  background-color: #fff;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  box-sizing: border-box;
+
+  .btn {
+    height: 100%;
+    line-height: 80rpx;
+    width: 100%;
+    color: #fff;
+    background-color: #6600ff;
+    font-size: 34rpx;
+    border-radius: 10rpx;
+  }
+}
+
+.repair-detail-box {
+  .page-4 {
+    .evaluate-box {
+      padding: 20rpx 30rpx;
+      background: $page-color-base;
+      border: 1rpx solid #ebedf0;
+      border-radius: 100rpx;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      box-sizing: border-box;
+    }
+  }
+
+  width: 100%;
+  height: 100%;
+
+  .page-1 {
+    .textarea {
+      padding: 20rpx;
+      border-radius: 10rpx;
+      background: $page-color-base;
+      box-sizing: border-box;
+    }
+  }
+
+  .page-3 {
+    padding-bottom: 100rpx;
+
+    .input-item {
+      padding: 0;
+    }
+
+    .custom-item-tit {
+      height: 13.333vw;
+      font-size: 4.267vw;
+      color: #333;
+      padding: 2.667vw 0;
+      position: relative;
+      display: -webkit-box;
+      display: -ms-flexbox;
+      display: flex;
+      -webkit-box-pack: justify;
+      -ms-flex-pack: justify;
+      justify-content: space-between;
+      -webkit-box-align: center;
+      -ms-flex-align: center;
+      align-items: center;
+      -webkit-box-sizing: border-box;
+      box-sizing: border-box;
+
+      .tit {
+        &::after {
+          content: "";
+          width: 0.8vw;
+          height: 90%;
+          background-color: #976dec;
+          border-radius: 0.4vw;
+          position: absolute;
+          left: 0;
+          top: 50%;
+          -webkit-transform: translateY(-50%);
+          transform: translateY(-50%);
+        }
+      }
+    }
+
+    .tit {
+      // padding-left: 2.667vw;
+      position: relative;
+    }
+  }
+
+  .page-4 {
+    .custom-item-tit {
+      height: 13.333vw;
+      font-size: 4.267vw;
+      color: #333;
+      padding: 2.667vw 0;
+      position: relative;
+      display: -webkit-box;
+      display: -ms-flexbox;
+      display: flex;
+      -webkit-box-pack: justify;
+      -ms-flex-pack: justify;
+      justify-content: space-between;
+      -webkit-box-align: center;
+      -ms-flex-align: center;
+      align-items: center;
+      -webkit-box-sizing: border-box;
+      box-sizing: border-box;
+
+      .tit {
+        &::after {
+          content: "";
+          width: 0.8vw;
+          height: 90%;
+          background-color: #976dec;
+          border-radius: 0.4vw;
+          position: absolute;
+          left: 0;
+          top: 50%;
+          -webkit-transform: translateY(-50%);
+          transform: translateY(-50%);
+        }
+      }
+    }
+
+    .tit {
+      padding-left: 2.667vw;
+      position: relative;
+    }
+
+    s .evaluate-box {
+      padding: 20px 30px;
+      background: $page-color-base;
+      border: 1px solid #ebedf0;
+      border-radius: 100px;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      box-sizing: border-box;
+    }
+  }
+
+  .annex-list-box {
+    display: flex;
+
+    // flex-wrap: wrap;
+    // justify-content: space-between;
+    &::after {
+      display: block;
+      content: "";
+      width: 30%;
+      height: 0px;
+    }
+
+    .annex-item {
+      width: 240rpx;
+      height: 240rpx;
+      border: 1px solid $text4;
+      margin-bottom: 20px;
+      position: relative;
+      overflow: hidden;
+
+      >img {
+        width: 240rpx;
+        height: 240rpx;
+        position: absolute;
+        top: 0;
+        left: 0;
+        right: 0;
+        bottom: 0;
+        margin: auto;
+        display: block;
+      }
+
+      video {
+        width: 100%;
+        height: 100%;
+      }
+    }
+  }
+
+  .tel-box {
+    display: flex;
+    align-items: center;
+
+    /deep/ .custom-tel-component {
+      margin-left: 20px;
+    }
+  }
+}
+</style>
+<style lang="scss">
+.image-repairDispatch-box {
+  .van-image-preview__close-icon {
+    color: #fff;
+    font-size: 64px;
+  }
+}
+</style>s

+ 303 - 0
pages/subPackages/serve-confirm/index.vue

@@ -0,0 +1,303 @@
+<template>
+  <div class="repair">
+    <!--    <div class="top-add" @click="goNavigator('repairprocessing-add-app')">-->
+    <!--      <i class="iconfont icon-xinzeng"></i>-->
+    <!--      <span class="txt">新增报修</span>-->
+    <!--    </div>-->
+    <div class="info-list">
+      <div class="info-item" v-for="item in recordList" :key="item.id" @click="goNavigator(item.id)">
+        <div class="info-top">
+          <div class="left">
+            <img :src="item.fileUrl != null ? item.fileUrl.url : ''" alt="" />
+          </div>
+          <div class="right">
+            <p class="tit">
+              {{ item.description }}
+            </p>
+            <p class="txt">{{ item.companyName }}</p>
+          </div>
+        </div>
+        <div class="info-bottom">
+          <div class="left">
+            <i class="iconfont icon-shijian"></i>
+            <span>
+              {{ item.createdAt }}
+            </span>
+          </div>
+          <div class="right">
+            <span v-if="item.status == '2'" class="normal-tip yd z-bg">待确认 </span>
+            <span v-if="item.status == '3'" class="normal-tip yd z-bg">已确认 </span>
+            <span v-if="item.status == '4'" class="normal-tip yd z-bg">处理退回 </span>
+            <span v-if="item.status == '5'" class="normal-tip yd z-bg">已退回 </span>
+
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+// import { list } from "@/service/api_repair";
+import {
+  getByCodes,
+  getUserLocalStorageInfo,
+  confirmList,
+} from "@/js_sdk/http";
+// import Base from "@/pages/base/base";
+// import auth from "@/service/auth";
+export default {
+  data() {
+    return {
+      dic_key: ["REPAIR_STATUS"],
+      dic_SelectList: {},
+      recordList: [],
+      dic_SelectList: {},
+      BASE_URI: this.$constant.BASE_URI,
+      params: {
+        pageNum: 1,
+        pageSize: 10,
+        // status: 'acceptance',
+        // groupId: '870261874875170816',
+        // handleUserId: getUserLocalStorageInfo().user.id,
+      },
+      totalPage: 1,
+      allData: [],
+      list: [
+        {
+          title: "关于组织2020年无锡市服务业提质增效资金项目申报的通知",
+          name: "无锡 XXXX有限公司",
+          date: "2020-09-18 19:34:06",
+          type: "1",
+        },
+        {
+          title:
+            "关于组织2020年无锡市服务业提质增效资金项目申报的通知关于组织2020年无锡市服务业提质增效资金项目申报的通知",
+          name: "无锡 XXXX有限公司",
+          date: "2020-09-18 19:34:06",
+          type: "2",
+        },
+      ],
+    };
+  },
+  onShow() {
+    this.parmas =
+      getUserLocalStorageInfo().user.id +
+      getUserLocalStorageInfo().user.truename +
+      getUserLocalStorageInfo().user.phone;
+    this.getByCodes();
+    this.params.userId = getUserLocalStorageInfo().user.id;
+  },
+
+  methods: {
+    goNavigator(id) {
+      uni.navigateTo({
+        url: "/pages/subPackages/serve-confirm/detail?id=" + id,
+        fail: (fail) => {
+          console.log(fail);
+        },
+      });
+    },
+    async getByCodes() {
+      let data = await getByCodes(JSON.stringify(this.dic_key));
+      this.dic_SelectList = this.$common.handleDicList(data);
+      this.selectData();
+    },
+    goBack() {
+      this.$router.push({ path: "/home-app" });
+    },
+    selectData() {
+      const _this = this;
+      _this.recordList = [];
+      _this.params;
+      confirmList(this.params).then((res) => {
+        console.log(res.data);
+        if (res.data) {
+          res.data.rows.forEach(function (item) {
+            const jsonMap = _this.getItemJson(item);
+            _this.recordList.push(jsonMap);
+          });
+        }
+      });
+    },
+    getItemJson: function (item) {
+      item.createdAt = this.$common.transServDate(item.createdAt);
+      console.log(item.status)
+      // let index = this.dic_SelectList.REPAIR_STATUS.findIndex((e) => {
+      //   console.log('e.value, item.status', e.value == item.status)
+      //   console.log('e.value, item.status', e.value, item.status)
+      //   return e.value == item.status
+      // }
+      // );
+      // console.log(index)
+      const fileUrls =
+        item.fileUrl && item.fileUrl.length > 0 ? item.fileUrl.split(",") : [];
+      console.log(fileUrls);
+      const fileUrl = {
+        url:
+          this.$constant.BASE_URI +
+          "/wx/fileController/download/" +
+          fileUrls[0],
+      };
+      item.fileUrl = fileUrl;
+      console.log(this.dic_SelectList.REPAIR_STATUS);
+      // item.statusName = this.dic_SelectList.REPAIR_STATUS[index].label;
+      return item;
+    },
+    /**
+     *
+     */
+    quickSelect(item) {
+      if (this.quickSleced.val && this.quickSleced.val === item.val) {
+        this.quickSleced = {};
+      } else {
+        this.quickSleced = item;
+      }
+    },
+    /**
+     * 上传文件
+     */
+    afterRead(file) {
+      console.log(file);
+    },
+    /**
+     * 设置状态样式
+     */
+    setStatusStyle(status) {
+      let statusClass = null;
+      switch (status) {
+        case "unAcceptance":
+          statusClass = "pending-btn";
+          break;
+        case "acceptance":
+          statusClass = "accepted-btn";
+          break;
+        case "processed":
+          statusClass = "processed-btn";
+          break;
+        case "evaluated":
+          statusClass = "evaluated-btn";
+          break;
+      }
+      return statusClass;
+    },
+  },
+  /**
+   * 过滤器
+   */
+  filters: {
+    /**
+     * 状态:0、待受理 1、已受理 2、已处理  3、已评价
+     */
+    statusFilter(val) {
+      let res = null;
+      switch (val) {
+        case "unAcceptance":
+          res = "待处理";
+          break;
+        case "acceptance":
+          res = "已受理";
+          break;
+        case "processed":
+          res = "已处理";
+          break;
+        case "evaluated":
+          res = "已评价";
+          break;
+      }
+      return res;
+    },
+  },
+};
+</script>
+<style lang="scss" type="text/scss" scoped>
+.repair {
+  .top-add {
+    background-color: #fff;
+    padding: 30rpx;
+    margin-bottom: 20rpx;
+    text-align: right;
+    box-shadow: 0rpx 5rpx 10rpx 0rpx rgba(0, 0, 0, 0.05);
+
+    i {
+      font-size: 36rpx;
+      color: $text6;
+      margin-right: 15rpx;
+    }
+
+    .txt {
+      font-size: 32rpx;
+      color: $text6;
+    }
+  }
+
+  .info-list {
+    height: calc(100vh - 124rpx);
+    overflow-y: auto;
+
+    .info-item {
+      background-color: #fff;
+      padding: 20rpx 30rpx;
+      margin-bottom: 20rpx;
+
+      .info-top {
+        @include flex;
+
+        .left {
+          width: 286rpx;
+          height: 168rpx;
+          font-size: 0;
+          border-radius: 10rpx;
+          overflow: hidden;
+
+          img {
+            width: 100%;
+            height: 100%;
+          }
+        }
+
+        .right {
+          align-self: flex-start;
+          width: 380rpx;
+
+          .tit {
+            width: 380rpx;
+            font-size: 32rpx;
+            line-height: 1.4;
+            font-weight: bold;
+            color: #333333;
+            @include line-clamp;
+            margin-bottom: 20rpx;
+          }
+
+          .txt {
+            font-size: 28rpx;
+            color: #666;
+          }
+        }
+      }
+
+      .info-bottom {
+        margin-top: 20rpx;
+        padding-top: 20rpx;
+        border-top: 1rpx dashed #dbdbdb;
+        @include flex;
+
+        .left {
+          i {
+            font-size: 30rpx;
+            color: #999999;
+            margin-left: 10rpx;
+          }
+
+          span {
+            font-size: 28rpx;
+            color: #999999;
+          }
+        }
+
+        .right {}
+      }
+    }
+  }
+}
+</style>

+ 379 - 0
uni_modules/uni-fab/components/uni-fab/uni-fab.vue.bak

@@ -0,0 +1,379 @@
+<template>
+	<view>
+		<view :class="{
+        leftBottom: leftBottom,
+        rightBottom: rightBottom,
+        leftTop: leftTop,
+        rightTop: rightTop
+      }" v-if="leftBottom||rightBottom||leftTop||rightTop" class="fab-box fab">
+			<view :class="{
+          left: horizontal === 'left' && direction === 'horizontal',
+          top: vertical === 'top' && direction === 'vertical',
+          bottom: vertical === 'bottom' && direction === 'vertical',
+          right: horizontal === 'right' && direction === 'horizontal'
+        }" :style="{ 'background-color': styles.buttonColor }" class="fab-circle" @click="_onClick">
+                <view class="fab-circle-box" :class="{ active: isShow }">
+                    <view class="fab-circle-v"></view>
+                    <view class="fab-circle-h"></view>
+                </view>
+			</view>
+			<view :class="{
+          left: horizontal === 'left',
+          right: horizontal === 'right',
+          flexDirection: direction === 'vertical',
+          flexDirectionStart: flexDirectionStart,
+          flexDirectionEnd: flexDirectionEnd
+        }" :style="{ width: boxWidth, height: boxHeight, background: styles.backgroundColor }" class="fab-content">
+				<view v-if="flexDirectionStart || horizontalLeft" class="fab-item first" />
+				<view v-for="(item, index) in content" :key="index" :class="{ active: isShow }" :style="{
+            color: item.active ? styles.selectedColor : styles.color
+          }" class="fab-item" @click="_onItemClick(index, item)">
+					<image :src="item.active ? item.selectedIconPath : item.iconPath" class="content-image" mode="widthFix" />
+					<text class="text">{{ item.text }}</text>
+				</view>
+				<view v-if="flexDirectionEnd || horizontalRight" class="fab-item first" />
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: 'UniFab',
+		props: {
+			pattern: {
+				type: Object,
+				default () {
+					return {}
+				}
+			},
+			horizontal: {
+				type: String,
+				default: 'left'
+			},
+			vertical: {
+				type: String,
+				default: 'bottom'
+			},
+			direction: {
+				type: String,
+				default: 'horizontal'
+			},
+			content: {
+				type: Array,
+				default () {
+					return []
+				}
+			},
+			show: {
+				type: Boolean,
+				default: false
+			}
+		},
+		data() {
+			return {
+				fabShow: false,
+				flug: true,
+				isShow: false,
+				styles: {
+					color: '#3c3e49',
+					selectedColor: '#007AFF',
+					backgroundColor: '#fff',
+					buttonColor: '#3c3e49'
+				}
+			}
+		},
+		computed: {
+			contentWidth(e) {
+				return uni.upx2px((this.content.length + 1) * 110 + 20) + 'px'
+			},
+			contentWidthMin() {
+				return uni.upx2px(110) + 'px'
+			},
+			// 动态计算宽度
+			boxWidth() {
+				return this.getPosition(3, 'horizontal')
+			},
+			// 动态计算高度
+			boxHeight() {
+				return this.getPosition(3, 'vertical')
+			},
+			// 计算左下位置
+			leftBottom() {
+				return this.getPosition(0, 'left', 'bottom')
+			},
+			// 计算右下位置
+			rightBottom() {
+				return this.getPosition(0, 'right', 'bottom')
+			},
+			// 计算左上位置
+			leftTop() {
+				return this.getPosition(0, 'left', 'top')
+			},
+			rightTop() {
+				return this.getPosition(0, 'right', 'top')
+			},
+			flexDirectionStart() {
+				return this.getPosition(1, 'vertical', 'top')
+			},
+			flexDirectionEnd() {
+				return this.getPosition(1, 'vertical', 'bottom')
+			},
+			horizontalLeft() {
+				return this.getPosition(2, 'horizontal', 'left')
+			},
+			horizontalRight() {
+				return this.getPosition(2, 'horizontal', 'right')
+			}
+		},
+		watch: {
+			pattern(newValue, oldValue) {
+				//console.log(JSON.stringify(newValue))
+				this.styles = Object.assign({}, this.styles, newValue)
+			}
+		},
+		created() {
+			this.isShow = this.show
+			if (this.top === 0) {
+				this.fabShow = true
+			}
+			// 初始化样式
+			this.styles = Object.assign({}, this.styles, this.pattern)
+		},
+		methods: {
+			_onClick() {
+				this.isShow = !this.isShow
+			},
+			open() {
+				this.isShow = true
+			},
+			close() {
+				this.isShow = false
+			},
+			/**
+			 * 按钮点击事件
+			 */
+			_onItemClick(index, item) {
+				this.$emit('trigger', {
+					index,
+					item
+				})
+			},
+			/**
+			 * 获取 位置信息
+			 */
+			getPosition(types, paramA, paramB) {
+				if (types === 0) {
+					return this.horizontal === paramA && this.vertical === paramB
+				} else if (types === 1) {
+					return this.direction === paramA && this.vertical === paramB
+				} else if (types === 2) {
+					return this.direction === paramA && this.horizontal === paramB
+				} else {
+					return this.isShow && this.direction === paramA ? this.contentWidth : this.contentWidthMin
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+
+	.uni-icon {
+		font-family: uniicons;
+		font-size: 30px;
+		font-weight: normal;
+		font-style: normal;
+		line-height: 1;
+		display: inline-block;
+		text-decoration: none;
+		-webkit-font-smoothing: antialiased;
+	}
+
+	.fab-box {
+		position: fixed;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		z-index: 2;
+	}
+
+	.fab-box.top {
+		width: 60rpx;
+		height: 60rpx;
+		right: 30rpx;
+		bottom: 60rpx;
+		border: 1px #5989b9 solid;
+		background: #6699cc;
+		border-radius: 10rpx;
+		color: #fff;
+		transition: all 0.3;
+		opacity: 0;
+	}
+
+	.fab-box.active {
+		opacity: 1;
+	}
+
+	.fab-box.fab {
+		z-index: 10;
+	}
+
+	.fab-box.fab.leftBottom {
+		left: 30rpx;
+		bottom: 60rpx;
+	}
+
+	.fab-box.fab.leftTop {
+		left: 30rpx;
+		top: 80rpx;
+		/* #ifdef H5 */
+		top: calc(80rpx + var(--window-top));
+		/* #endif */
+	}
+
+	.fab-box.fab.rightBottom {
+		right: 30rpx;
+		bottom: 60rpx;
+	}
+
+	.fab-box.fab.rightTop {
+		right: 30rpx;
+		top: 80rpx;
+		/* #ifdef H5 */
+		top: calc(80rpx + var(--window-top));
+		/* #endif */
+	}
+
+	.fab-circle {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		position: absolute;
+		width: 110rpx;
+		height: 110rpx;
+		background: #3c3e49;
+		/* background: #5989b9; */
+		border-radius: 50%;
+		box-shadow: 0 0 5px 2px rgba(0, 0, 0, 0.2);
+		z-index: 11;
+	}
+
+    .fab-circle-box {
+        position: absolute;
+        left: 0;
+        top: 0;
+        right: 0;
+        bottom: 0;
+		transition: all 0.3s;
+    }
+
+    .fab-circle-v {
+        position: absolute;
+        width: 8rpx;
+        height: 60rpx;
+        left: 50%;
+        top: 50%;
+        margin: -30rpx 0 0 -4rpx;
+        background-color: white;
+    }
+
+    .fab-circle-h {
+        position: absolute;
+        width: 60rpx;
+        height: 8rpx;
+        left: 50%;
+        top: 50%;
+        margin: -4rpx 0 0 -30rpx;
+        background-color: white;
+    }
+
+	.fab-circle.left {
+		left: 0;
+	}
+
+	.fab-circle.right {
+		right: 0;
+	}
+
+	.fab-circle.top {
+		top: 0;
+	}
+
+	.fab-circle.bottom {
+		bottom: 0;
+	}
+
+	.fab-circle .uni-icon-plusempty {
+		color: #ffffff;
+		font-size: 80rpx;
+		transition: all 0.3s;
+		font-weight: bold;
+	}
+
+	.fab-circle-box.active {
+		transform: rotate(135deg);
+		font-size: 80rpx;
+	}
+
+	.fab-content {
+		background: #6699cc;
+		box-sizing: border-box;
+		display: flex;
+		border-radius: 100rpx;
+		overflow: hidden;
+		box-shadow: 0 0 5px 2px rgba(0, 0, 0, 0.1);
+		transition: all 0.2s;
+		width: 110rpx;
+	}
+
+	.fab-content.left {
+		justify-content: flex-start;
+	}
+
+	.fab-content.right {
+		justify-content: flex-end;
+	}
+
+	.fab-content.flexDirection {
+		flex-direction: column;
+		justify-content: flex-end;
+	}
+
+	.fab-content.flexDirectionStart {
+		flex-direction: column;
+		justify-content: flex-start;
+	}
+
+	.fab-content.flexDirectionEnd {
+		flex-direction: column;
+		justify-content: flex-end;
+	}
+
+	.fab-content .fab-item {
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		width: 110rpx;
+		height: 110rpx;
+		font-size: 24rpx;
+		color: #fff;
+		opacity: 0;
+		transition: opacity 0.2s;
+	}
+
+	.fab-content .fab-item.active {
+		opacity: 1;
+	}
+
+	.fab-content .fab-item .content-image {
+		width: 50rpx;
+		height: 50rpx;
+		margin-bottom: 5rpx;
+	}
+
+	.fab-content .fab-item.first {
+		width: 110rpx;
+	}
+</style>

BIN
unpackage/dist/build/mp-weixin/common/assets/image/logobig.png


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.js


+ 24 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.json

@@ -0,0 +1,24 @@
+{
+  "navigationBarTitleText": "企业详情查看",
+  "enablePullDownRefresh": true,
+  "onReachBottomDistance": 100,
+  "component": true,
+  "usingComponents": {
+    "uni-collapse": "/uni_modules/uni-collapse/components/uni-collapse/uni-collapse",
+    "uni-collapse-item": "/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item",
+    "van-button": "/wxcomponents/weapp/dist/button/index",
+    "van-toast": "/wxcomponents/weapp/dist/toast/index",
+    "van-field": "/wxcomponents/weapp/dist/field/index",
+    "van-popup": "/wxcomponents/weapp/dist/popup/index",
+    "van-picker": "/wxcomponents/weapp/dist/picker/index",
+    "van-dialog": "/wxcomponents/weapp/dist/dialog/index",
+    "van-icon": "/wxcomponents/weapp/dist/icon/index",
+    "van-tab": "/wxcomponents/weapp/dist/tab/index",
+    "van-tabs": "/wxcomponents/weapp/dist/tabs/index",
+    "van-datetime-picker": "/wxcomponents/weapp/dist/datetime-picker/index",
+    "van-uploader": "/wxcomponents/weapp/dist/uploader/index",
+    "van-checkbox": "/wxcomponents/weapp/dist/checkbox/index",
+    "van-checkbox-group": "/wxcomponents/weapp/dist/checkbox-group/index",
+    "handle-report": "/pages/subPackages/companyreport/components/handlereport"
+  }
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.wxml


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.wxss


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.js


+ 24 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.json

@@ -0,0 +1,24 @@
+{
+  "navigationBarTitleText": "企业查看",
+  "enablePullDownRefresh": true,
+  "onReachBottomDistance": 100,
+  "component": true,
+  "usingComponents": {
+    "uni-search-bar": "/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar",
+    "uni-data-checkbox": "/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox",
+    "van-button": "/wxcomponents/weapp/dist/button/index",
+    "van-toast": "/wxcomponents/weapp/dist/toast/index",
+    "van-field": "/wxcomponents/weapp/dist/field/index",
+    "van-popup": "/wxcomponents/weapp/dist/popup/index",
+    "van-picker": "/wxcomponents/weapp/dist/picker/index",
+    "van-dialog": "/wxcomponents/weapp/dist/dialog/index",
+    "van-icon": "/wxcomponents/weapp/dist/icon/index",
+    "van-tab": "/wxcomponents/weapp/dist/tab/index",
+    "van-tabs": "/wxcomponents/weapp/dist/tabs/index",
+    "van-datetime-picker": "/wxcomponents/weapp/dist/datetime-picker/index",
+    "van-uploader": "/wxcomponents/weapp/dist/uploader/index",
+    "van-checkbox": "/wxcomponents/weapp/dist/checkbox/index",
+    "van-checkbox-group": "/wxcomponents/weapp/dist/checkbox-group/index",
+    "van-empty": "/wxcomponents/weapp/dist/empty/index"
+  }
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.wxml


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.wxss


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/detail.js


+ 25 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/detail.json

@@ -0,0 +1,25 @@
+{
+  "navigationBarTitleText": "服务确认-确认",
+  "enablePullDownRefresh": true,
+  "onReachBottomDistance": 100,
+  "component": true,
+  "usingComponents": {
+    "uni-easyinput": "/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput",
+    "van-steps": "/wxcomponents/weapp/dist/steps/index",
+    "van-radio": "/wxcomponents/weapp/dist/radio/index",
+    "van-radio-group": "/wxcomponents/weapp/dist/radio-group/index",
+    "van-empty": "/wxcomponents/weapp/dist/empty/index",
+    "van-button": "/wxcomponents/weapp/dist/button/index",
+    "van-toast": "/wxcomponents/weapp/dist/toast/index",
+    "van-field": "/wxcomponents/weapp/dist/field/index",
+    "van-popup": "/wxcomponents/weapp/dist/popup/index",
+    "van-picker": "/wxcomponents/weapp/dist/picker/index",
+    "van-dialog": "/wxcomponents/weapp/dist/dialog/index",
+    "van-icon": "/wxcomponents/weapp/dist/icon/index",
+    "van-tab": "/wxcomponents/weapp/dist/tab/index",
+    "van-tabs": "/wxcomponents/weapp/dist/tabs/index",
+    "van-uploader": "/wxcomponents/weapp/dist/uploader/index",
+    "tel-num": "/pages/subPackages/components/tel-number/index",
+    "van-rate": "/wxcomponents/weapp/dist/rate/index"
+  }
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/detail.wxml


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/detail.wxss


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/index.js


+ 19 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/index.json

@@ -0,0 +1,19 @@
+{
+  "navigationBarTitleText": "服务确认",
+  "enablePullDownRefresh": true,
+  "onReachBottomDistance": 100,
+  "component": true,
+  "usingComponents": {
+    "van-empty": "/wxcomponents/weapp/dist/empty/index",
+    "van-button": "/wxcomponents/weapp/dist/button/index",
+    "van-toast": "/wxcomponents/weapp/dist/toast/index",
+    "van-field": "/wxcomponents/weapp/dist/field/index",
+    "van-popup": "/wxcomponents/weapp/dist/popup/index",
+    "van-picker": "/wxcomponents/weapp/dist/picker/index",
+    "van-dialog": "/wxcomponents/weapp/dist/dialog/index",
+    "van-icon": "/wxcomponents/weapp/dist/icon/index",
+    "van-tab": "/wxcomponents/weapp/dist/tab/index",
+    "van-tabs": "/wxcomponents/weapp/dist/tabs/index",
+    "van-uploader": "/wxcomponents/weapp/dist/uploader/index"
+  }
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/index.wxml


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/build/mp-weixin/pages/subPackages/serve-confirm/index.wxss


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/subPackages/companyHouse/companyHouseSee.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/subPackages/companyHouseSee/companyHouse.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/subPackages/serve-confirm/detail.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/subPackages/serve-confirm/index.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/wxcomponents/weapp/dist/cascader/index.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/wxcomponents/weapp/dist/icon/index.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/wxcomponents/weapp/dist/info/index.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/wxcomponents/weapp/dist/sticky/index.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/wxcomponents/weapp/dist/tab/index.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/wxcomponents/weapp/dist/tabs/index.js.map


BIN
unpackage/dist/dev/mp-weixin/common/assets/image/logobig.png


Datei-Diff unterdrückt, da er zu groß ist
+ 674 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.js


+ 24 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.json

@@ -0,0 +1,24 @@
+{
+  "navigationBarTitleText": "企业详情查看",
+  "enablePullDownRefresh": true,
+  "onReachBottomDistance": 100,
+  "component": true,
+  "usingComponents": {
+    "uni-collapse": "/uni_modules/uni-collapse/components/uni-collapse/uni-collapse",
+    "uni-collapse-item": "/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item",
+    "van-button": "/wxcomponents/weapp/dist/button/index",
+    "van-toast": "/wxcomponents/weapp/dist/toast/index",
+    "van-field": "/wxcomponents/weapp/dist/field/index",
+    "van-popup": "/wxcomponents/weapp/dist/popup/index",
+    "van-picker": "/wxcomponents/weapp/dist/picker/index",
+    "van-dialog": "/wxcomponents/weapp/dist/dialog/index",
+    "van-icon": "/wxcomponents/weapp/dist/icon/index",
+    "van-tab": "/wxcomponents/weapp/dist/tab/index",
+    "van-tabs": "/wxcomponents/weapp/dist/tabs/index",
+    "van-datetime-picker": "/wxcomponents/weapp/dist/datetime-picker/index",
+    "van-uploader": "/wxcomponents/weapp/dist/uploader/index",
+    "van-checkbox": "/wxcomponents/weapp/dist/checkbox/index",
+    "van-checkbox-group": "/wxcomponents/weapp/dist/checkbox-group/index",
+    "handle-report": "/pages/subPackages/companyreport/components/handlereport"
+  }
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.wxml


+ 442 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/companyDetailsSee/companyDetailsSee.wxss

@@ -0,0 +1,442 @@
+@charset "UTF-8";
+/* 文字尺寸 */
+/*文字颜色*/
+/* 边框颜色 */
+/* 图片加载中颜色 */
+/* 行为相关颜色 */
+.normal-tip.data-v-d82440bc {
+  font-size: 24rpx;
+  line-height: 40rpx;
+  padding: 4rpx 10rpx;
+}
+.normal-tip.by.data-v-d82440bc {
+  border-radius: 20rpx;
+}
+.normal-tip.yd.data-v-d82440bc {
+  border-radius: 5rspx;
+}
+.fixed-page-content.data-v-d82440bc {
+  width: 100%;
+  height: 100%;
+  padding-bottom: 120rpx;
+  box-sizing: border-box;
+}
+.page-content.data-v-d82440bc {
+  width: 100%;
+  height: 100%;
+}
+.white-box.data-v-d82440bc {
+  width: 100%;
+  font-size: 28rpx;
+  padding: 0 40rpx;
+  background-color: #ffffff;
+  box-sizing: border-box;
+}
+.white-box.data-v-d82440bc:not(:last-child) {
+  margin-bottom: 30rpx;
+}
+.white-box .flex-item.data-v-d82440bc {
+  align-items: center;
+}
+.white-box .flex-item .tel-box.data-v-d82440bc {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+}
+.white-box .flex-item .tel-box .custom-tel-component.data-v-d82440bc {
+  margin-left: 20rpx;
+}
+.white-box .cell-item.data-v-d82440bc {
+  color: var(--Black);
+  padding: 30rpx 0;
+  display: flex;
+  justify-content: space-between;
+  position: relative;
+}
+.white-box .cell-item.data-v-d82440bc::after {
+  position: absolute;
+  box-sizing: border-box;
+  content: ' ';
+  pointer-events: none;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  border-bottom: 2rpx solid #ebedf0;
+  -webkit-transform: scaleY(0.5);
+  transform: scaleY(0.5);
+}
+.white-box .cell-item > .label.data-v-d82440bc {
+  flex: 1;
+  width: 30%;
+}
+.white-box .cell-item > .label .tips.data-v-d82440bc {
+  font-size: 22rpx;
+  color: var(--greyColor);
+}
+.white-box .cell-item > .label.required.data-v-d82440bc {
+  position: relative;
+}
+.white-box .cell-item > .label.required.data-v-d82440bc::after {
+  content: '*';
+  color: var(--Red);
+  position: absolute;
+  font-size: 30rpx;
+  top: -15rpx;
+  left: -15rpx;
+}
+.white-box .cell-item > .tit.data-v-d82440bc {
+  color: var(--Black);
+  flex: 1;
+  width: 70%;
+  text-align: right;
+}
+.white-box .cell-item > .tit .van-radio-group.data-v-d82440bc {
+  display: flex;
+  justify-content: flex-end;
+}
+.white-box .cell-item > .tit .van-radio-group .van-radio.data-v-d82440bc:not(:first-child) {
+  margin-left: 30rpx;
+}
+.white-box .block-cell-item.data-v-d82440bc {
+  color: var(--Black);
+  padding: 30rpx 0;
+  position: relative;
+}
+.white-box .block-cell-item.data-v-d82440bc::after {
+  position: absolute;
+  box-sizing: border-box;
+  content: " ";
+  pointer-events: none;
+  right: 16rpx;
+  bottom: 0;
+  left: 16rpx;
+  border-bottom: 2rpx solid #ebedf0;
+  -webkit-transform: scaleY(0.5);
+  transform: scaleY(0.5);
+}
+.white-box .block-cell-item .label.data-v-d82440bc {
+  width: 100%;
+  padding-bottom: 30rpx;
+}
+.white-box .block-cell-item .label.required.data-v-d82440bc {
+  position: relative;
+}
+.white-box .block-cell-item .label.required.data-v-d82440bc::after {
+  content: '*';
+  color: var(--Red);
+  position: absolute;
+  font-size: 30rpx;
+  top: -15rpx;
+  left: -15rpx;
+}
+.white-box .block-cell-item .label .tips.data-v-d82440bc {
+  font-size: 22rpx;
+  color: var(--greyColor);
+}
+.white-box .block-cell-item .tit.data-v-d82440bc {
+  width: 100%;
+  color: var(--Black);
+}
+.white-box .block-cell-item .tit .van-radio-group.data-v-d82440bc {
+  display: flex;
+  justify-content: flex-end;
+}
+.white-box .block-cell-item .tit .van-radio-group .van-radio.data-v-d82440bc:not(:first-child) {
+  margin-left: 30rpx;
+}
+.white-box .block-cell-item .tit .textarea.data-v-d82440bc {
+  background-color: #F8F8F8;
+  font-size: 30rpx;
+  color: #B7B7B7;
+  border-radius: 10rpx;
+  padding: 30rpx;
+  word-break: break-all;
+}
+.white-box .custom-white-box-content.data-v-d82440bc {
+  padding-bottom: 30rpx;
+}
+.z-bg.data-v-d82440bc {
+  background: #6600ff;
+  color: #fff;
+}
+.l-bg.data-v-d82440bc {
+  background: #0000FF;
+  color: #fff;
+}
+.h-bg.data-v-d82440bc {
+  background: #F87A7A;
+  color: #fff;
+}
+.y-bg.data-v-d82440bc {
+  background: #e4ce6b;
+  color: #fff;
+}
+.z-br.data-v-d82440bc {
+  background: #fff;
+  border: 1px solid #6600ff;
+  color: #6600ff;
+}
+.chaochuyincang.data-v-d82440bc {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.chaochuyincang.data-v-d82440bc {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.form_row.data-v-d82440bc {
+  height: 40rpx;
+  font-weight: 400;
+  font-size: 24rpx;
+}
+.dengjibutton.data-v-d82440bc {
+  margin-top: 24rpx;
+  margin-left: 60rpx;
+  margin-right: 60rpx;
+  width: calc(100% - 120rpx);
+  height: 60rpx;
+  text-align: center;
+  background: #1d18bc;
+  color: white;
+  line-height: 60rpx;
+}
+.housedetails.data-v-d82440bc {
+  margin-bottom: 200rpx;
+}
+.housedetails .detailstitle.data-v-d82440bc {
+  display: flex;
+  font-size: 30rpx;
+  font-weight: 500;
+  color: #333333;
+  padding-bottom: 16rpx;
+}
+.housedetails .typestitle.data-v-d82440bc {
+  display: flex;
+  font-size: 24rpx;
+  font-weight: 500;
+  padding-bottom: 16rpx;
+  margin-bottom: 16rpx;
+}
+
+@charset "UTF-8";
+/* 文字尺寸 */
+/*文字颜色*/
+/* 边框颜色 */
+/* 图片加载中颜色 */
+/* 行为相关颜色 */
+.normal-tip {
+  font-size: 24rpx;
+  line-height: 40rpx;
+  padding: 4rpx 10rpx;
+}
+.normal-tip.by {
+  border-radius: 20rpx;
+}
+.normal-tip.yd {
+  border-radius: 5rspx;
+}
+.fixed-page-content {
+  width: 100%;
+  height: 100%;
+  padding-bottom: 120rpx;
+  box-sizing: border-box;
+}
+.page-content {
+  width: 100%;
+  height: 100%;
+}
+.white-box {
+  width: 100%;
+  font-size: 28rpx;
+  padding: 0 40rpx;
+  background-color: #ffffff;
+  box-sizing: border-box;
+}
+.white-box:not(:last-child) {
+  margin-bottom: 30rpx;
+}
+.white-box .flex-item {
+  align-items: center;
+}
+.white-box .flex-item .tel-box {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+}
+.white-box .flex-item .tel-box .custom-tel-component {
+  margin-left: 20rpx;
+}
+.white-box .cell-item {
+  color: var(--Black);
+  padding: 30rpx 0;
+  display: flex;
+  justify-content: space-between;
+  position: relative;
+}
+.white-box .cell-item::after {
+  position: absolute;
+  box-sizing: border-box;
+  content: ' ';
+  pointer-events: none;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  border-bottom: 2rpx solid #ebedf0;
+  -webkit-transform: scaleY(0.5);
+  transform: scaleY(0.5);
+}
+.white-box .cell-item > .label {
+  flex: 1;
+  width: 30%;
+}
+.white-box .cell-item > .label .tips {
+  font-size: 22rpx;
+  color: var(--greyColor);
+}
+.white-box .cell-item > .label.required {
+  position: relative;
+}
+.white-box .cell-item > .label.required::after {
+  content: '*';
+  color: var(--Red);
+  position: absolute;
+  font-size: 30rpx;
+  top: -15rpx;
+  left: -15rpx;
+}
+.white-box .cell-item > .tit {
+  color: var(--Black);
+  flex: 1;
+  width: 70%;
+  text-align: right;
+}
+.white-box .cell-item > .tit .van-radio-group {
+  display: flex;
+  justify-content: flex-end;
+}
+.white-box .cell-item > .tit .van-radio-group .van-radio:not(:first-child) {
+  margin-left: 30rpx;
+}
+.white-box .block-cell-item {
+  color: var(--Black);
+  padding: 30rpx 0;
+  position: relative;
+}
+.white-box .block-cell-item::after {
+  position: absolute;
+  box-sizing: border-box;
+  content: " ";
+  pointer-events: none;
+  right: 16rpx;
+  bottom: 0;
+  left: 16rpx;
+  border-bottom: 2rpx solid #ebedf0;
+  -webkit-transform: scaleY(0.5);
+  transform: scaleY(0.5);
+}
+.white-box .block-cell-item .label {
+  width: 100%;
+  padding-bottom: 30rpx;
+}
+.white-box .block-cell-item .label.required {
+  position: relative;
+}
+.white-box .block-cell-item .label.required::after {
+  content: '*';
+  color: var(--Red);
+  position: absolute;
+  font-size: 30rpx;
+  top: -15rpx;
+  left: -15rpx;
+}
+.white-box .block-cell-item .label .tips {
+  font-size: 22rpx;
+  color: var(--greyColor);
+}
+.white-box .block-cell-item .tit {
+  width: 100%;
+  color: var(--Black);
+}
+.white-box .block-cell-item .tit .van-radio-group {
+  display: flex;
+  justify-content: flex-end;
+}
+.white-box .block-cell-item .tit .van-radio-group .van-radio:not(:first-child) {
+  margin-left: 30rpx;
+}
+.white-box .block-cell-item .tit .textarea {
+  background-color: #F8F8F8;
+  font-size: 30rpx;
+  color: #B7B7B7;
+  border-radius: 10rpx;
+  padding: 30rpx;
+  word-break: break-all;
+}
+.white-box .custom-white-box-content {
+  padding-bottom: 30rpx;
+}
+.z-bg {
+  background: #6600ff;
+  color: #fff;
+}
+.l-bg {
+  background: #0000FF;
+  color: #fff;
+}
+.h-bg {
+  background: #F87A7A;
+  color: #fff;
+}
+.y-bg {
+  background: #e4ce6b;
+  color: #fff;
+}
+.z-br {
+  background: #fff;
+  border: 1px solid #6600ff;
+  color: #6600ff;
+}
+.chaochuyincang {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+ .is-open + .uni-collapse-item__wrap {
+  height: auto !important;
+}
+ .uni-collapse-item__wrap-content {
+  height: auto !important;
+}
+.pageconfig {
+  background: #ffffff;
+  padding: 32rpx;
+}
+.input_title {
+  min-width: 40%;
+  font-size: 28rpx;
+  height: 40rpx;
+  line-height: 40rpx;
+  color: #333333;
+}
+.input_value {
+  font-size: 28rpx;
+  height: 40rpx;
+  line-height: 40rpx;
+  color: #777777;
+}
+.uni-collapse-item__title-box {
+  padding: 0 !important;
+}
+.uni-collapse-item__title-text {
+  color: #1d18bc !important;
+  font-size: 32rpx !important;
+  margin: 32rpx 0;
+  font-weight: bold;
+}
+.idclass {
+  width: 147rpx;
+  height: 100rpx;
+}
+

Datei-Diff unterdrückt, da er zu groß ist
+ 470 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.js


+ 24 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.json

@@ -0,0 +1,24 @@
+{
+  "navigationBarTitleText": "企业查看",
+  "enablePullDownRefresh": true,
+  "onReachBottomDistance": 100,
+  "component": true,
+  "usingComponents": {
+    "uni-search-bar": "/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar",
+    "uni-data-checkbox": "/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox",
+    "van-button": "/wxcomponents/weapp/dist/button/index",
+    "van-toast": "/wxcomponents/weapp/dist/toast/index",
+    "van-field": "/wxcomponents/weapp/dist/field/index",
+    "van-popup": "/wxcomponents/weapp/dist/popup/index",
+    "van-picker": "/wxcomponents/weapp/dist/picker/index",
+    "van-dialog": "/wxcomponents/weapp/dist/dialog/index",
+    "van-icon": "/wxcomponents/weapp/dist/icon/index",
+    "van-tab": "/wxcomponents/weapp/dist/tab/index",
+    "van-tabs": "/wxcomponents/weapp/dist/tabs/index",
+    "van-datetime-picker": "/wxcomponents/weapp/dist/datetime-picker/index",
+    "van-uploader": "/wxcomponents/weapp/dist/uploader/index",
+    "van-checkbox": "/wxcomponents/weapp/dist/checkbox/index",
+    "van-checkbox-group": "/wxcomponents/weapp/dist/checkbox-group/index",
+    "van-empty": "/wxcomponents/weapp/dist/empty/index"
+  }
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.wxml


+ 211 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/companyHouseSee/companyHouseSee.wxss

@@ -0,0 +1,211 @@
+@charset "UTF-8";
+/* 文字尺寸 */
+/*文字颜色*/
+/* 边框颜色 */
+/* 图片加载中颜色 */
+/* 行为相关颜色 */
+.normal-tip {
+  font-size: 24rpx;
+  line-height: 40rpx;
+  padding: 4rpx 10rpx;
+}
+.normal-tip.by {
+  border-radius: 20rpx;
+}
+.normal-tip.yd {
+  border-radius: 5rspx;
+}
+.fixed-page-content {
+  width: 100%;
+  height: 100%;
+  padding-bottom: 120rpx;
+  box-sizing: border-box;
+}
+.page-content {
+  width: 100%;
+  height: 100%;
+}
+.white-box {
+  width: 100%;
+  font-size: 28rpx;
+  padding: 0 40rpx;
+  background-color: #ffffff;
+  box-sizing: border-box;
+}
+.white-box:not(:last-child) {
+  margin-bottom: 30rpx;
+}
+.white-box .flex-item {
+  align-items: center;
+}
+.white-box .flex-item .tel-box {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+}
+.white-box .flex-item .tel-box .custom-tel-component {
+  margin-left: 20rpx;
+}
+.white-box .cell-item {
+  color: var(--Black);
+  padding: 30rpx 0;
+  display: flex;
+  justify-content: space-between;
+  position: relative;
+}
+.white-box .cell-item::after {
+  position: absolute;
+  box-sizing: border-box;
+  content: ' ';
+  pointer-events: none;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  border-bottom: 2rpx solid #ebedf0;
+  -webkit-transform: scaleY(0.5);
+  transform: scaleY(0.5);
+}
+.white-box .cell-item > .label {
+  flex: 1;
+  width: 30%;
+}
+.white-box .cell-item > .label .tips {
+  font-size: 22rpx;
+  color: var(--greyColor);
+}
+.white-box .cell-item > .label.required {
+  position: relative;
+}
+.white-box .cell-item > .label.required::after {
+  content: '*';
+  color: var(--Red);
+  position: absolute;
+  font-size: 30rpx;
+  top: -15rpx;
+  left: -15rpx;
+}
+.white-box .cell-item > .tit {
+  color: var(--Black);
+  flex: 1;
+  width: 70%;
+  text-align: right;
+}
+.white-box .cell-item > .tit .van-radio-group {
+  display: flex;
+  justify-content: flex-end;
+}
+.white-box .cell-item > .tit .van-radio-group .van-radio:not(:first-child) {
+  margin-left: 30rpx;
+}
+.white-box .block-cell-item {
+  color: var(--Black);
+  padding: 30rpx 0;
+  position: relative;
+}
+.white-box .block-cell-item::after {
+  position: absolute;
+  box-sizing: border-box;
+  content: " ";
+  pointer-events: none;
+  right: 16rpx;
+  bottom: 0;
+  left: 16rpx;
+  border-bottom: 2rpx solid #ebedf0;
+  -webkit-transform: scaleY(0.5);
+  transform: scaleY(0.5);
+}
+.white-box .block-cell-item .label {
+  width: 100%;
+  padding-bottom: 30rpx;
+}
+.white-box .block-cell-item .label.required {
+  position: relative;
+}
+.white-box .block-cell-item .label.required::after {
+  content: '*';
+  color: var(--Red);
+  position: absolute;
+  font-size: 30rpx;
+  top: -15rpx;
+  left: -15rpx;
+}
+.white-box .block-cell-item .label .tips {
+  font-size: 22rpx;
+  color: var(--greyColor);
+}
+.white-box .block-cell-item .tit {
+  width: 100%;
+  color: var(--Black);
+}
+.white-box .block-cell-item .tit .van-radio-group {
+  display: flex;
+  justify-content: flex-end;
+}
+.white-box .block-cell-item .tit .van-radio-group .van-radio:not(:first-child) {
+  margin-left: 30rpx;
+}
+.white-box .block-cell-item .tit .textarea {
+  background-color: #F8F8F8;
+  font-size: 30rpx;
+  color: #B7B7B7;
+  border-radius: 10rpx;
+  padding: 30rpx;
+  word-break: break-all;
+}
+.white-box .custom-white-box-content {
+  padding-bottom: 30rpx;
+}
+.z-bg {
+  background: #6600ff;
+  color: #fff;
+}
+.l-bg {
+  background: #0000FF;
+  color: #fff;
+}
+.h-bg {
+  background: #F87A7A;
+  color: #fff;
+}
+.y-bg {
+  background: #e4ce6b;
+  color: #fff;
+}
+.z-br {
+  background: #fff;
+  border: 1px solid #6600ff;
+  color: #6600ff;
+}
+.chaochuyincang {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.searchbox {
+  display: block;
+  background: white;
+}
+.chaochuyincang {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.labelcolmt26 input {
+  font-size: 24rpx;
+  border-radius: 8rpx 8rpx 8rpx 8rpx;
+  border: 2rpx solid #cccccc;
+  text-align: center;
+}
+.labelcolmt26 .van-col {
+  margin-top: 26rpx !important;
+}
+.labelcolmt26 label {
+  color: #333333;
+  font-size: 30rpx;
+  margin: 0;
+  margin-top: 0 !important;
+}
+.labelcolmt26 .uni-data-checklist {
+  margin-top: -10rpx !important;
+}
+

Datei-Diff unterdrückt, da er zu groß ist
+ 559 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/detail.js


+ 25 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/detail.json

@@ -0,0 +1,25 @@
+{
+  "navigationBarTitleText": "服务确认-确认",
+  "enablePullDownRefresh": true,
+  "onReachBottomDistance": 100,
+  "component": true,
+  "usingComponents": {
+    "uni-easyinput": "/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput",
+    "van-steps": "/wxcomponents/weapp/dist/steps/index",
+    "van-radio": "/wxcomponents/weapp/dist/radio/index",
+    "van-radio-group": "/wxcomponents/weapp/dist/radio-group/index",
+    "van-empty": "/wxcomponents/weapp/dist/empty/index",
+    "van-button": "/wxcomponents/weapp/dist/button/index",
+    "van-toast": "/wxcomponents/weapp/dist/toast/index",
+    "van-field": "/wxcomponents/weapp/dist/field/index",
+    "van-popup": "/wxcomponents/weapp/dist/popup/index",
+    "van-picker": "/wxcomponents/weapp/dist/picker/index",
+    "van-dialog": "/wxcomponents/weapp/dist/dialog/index",
+    "van-icon": "/wxcomponents/weapp/dist/icon/index",
+    "van-tab": "/wxcomponents/weapp/dist/tab/index",
+    "van-tabs": "/wxcomponents/weapp/dist/tabs/index",
+    "van-uploader": "/wxcomponents/weapp/dist/uploader/index",
+    "tel-num": "/pages/subPackages/components/tel-number/index",
+    "van-rate": "/wxcomponents/weapp/dist/rate/index"
+  }
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/detail.wxml


+ 526 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/detail.wxss

@@ -0,0 +1,526 @@
+@charset "UTF-8";
+/* 文字尺寸 */
+/*文字颜色*/
+/* 边框颜色 */
+/* 图片加载中颜色 */
+/* 行为相关颜色 */
+.normal-tip {
+  font-size: 24rpx;
+  line-height: 40rpx;
+  padding: 4rpx 10rpx;
+}
+.normal-tip.by {
+  border-radius: 20rpx;
+}
+.normal-tip.yd {
+  border-radius: 5rspx;
+}
+.fixed-page-content {
+  width: 100%;
+  height: 100%;
+  padding-bottom: 120rpx;
+  box-sizing: border-box;
+}
+.page-content {
+  width: 100%;
+  height: 100%;
+}
+.white-box {
+  width: 100%;
+  font-size: 28rpx;
+  padding: 0 40rpx;
+  background-color: #ffffff;
+  box-sizing: border-box;
+}
+.white-box:not(:last-child) {
+  margin-bottom: 30rpx;
+}
+.white-box .flex-item {
+  align-items: center;
+}
+.white-box .flex-item .tel-box {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+}
+.white-box .flex-item .tel-box .custom-tel-component {
+  margin-left: 20rpx;
+}
+.white-box .cell-item {
+  color: var(--Black);
+  padding: 30rpx 0;
+  display: flex;
+  justify-content: space-between;
+  position: relative;
+}
+.white-box .cell-item::after {
+  position: absolute;
+  box-sizing: border-box;
+  content: ' ';
+  pointer-events: none;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  border-bottom: 2rpx solid #ebedf0;
+  -webkit-transform: scaleY(0.5);
+  transform: scaleY(0.5);
+}
+.white-box .cell-item > .label {
+  flex: 1;
+  width: 30%;
+}
+.white-box .cell-item > .label .tips {
+  font-size: 22rpx;
+  color: var(--greyColor);
+}
+.white-box .cell-item > .label.required {
+  position: relative;
+}
+.white-box .cell-item > .label.required::after {
+  content: '*';
+  color: var(--Red);
+  position: absolute;
+  font-size: 30rpx;
+  top: -15rpx;
+  left: -15rpx;
+}
+.white-box .cell-item > .tit {
+  color: var(--Black);
+  flex: 1;
+  width: 70%;
+  text-align: right;
+}
+.white-box .cell-item > .tit .van-radio-group {
+  display: flex;
+  justify-content: flex-end;
+}
+.white-box .cell-item > .tit .van-radio-group .van-radio:not(:first-child) {
+  margin-left: 30rpx;
+}
+.white-box .block-cell-item {
+  color: var(--Black);
+  padding: 30rpx 0;
+  position: relative;
+}
+.white-box .block-cell-item::after {
+  position: absolute;
+  box-sizing: border-box;
+  content: " ";
+  pointer-events: none;
+  right: 16rpx;
+  bottom: 0;
+  left: 16rpx;
+  border-bottom: 2rpx solid #ebedf0;
+  -webkit-transform: scaleY(0.5);
+  transform: scaleY(0.5);
+}
+.white-box .block-cell-item .label {
+  width: 100%;
+  padding-bottom: 30rpx;
+}
+.white-box .block-cell-item .label.required {
+  position: relative;
+}
+.white-box .block-cell-item .label.required::after {
+  content: '*';
+  color: var(--Red);
+  position: absolute;
+  font-size: 30rpx;
+  top: -15rpx;
+  left: -15rpx;
+}
+.white-box .block-cell-item .label .tips {
+  font-size: 22rpx;
+  color: var(--greyColor);
+}
+.white-box .block-cell-item .tit {
+  width: 100%;
+  color: var(--Black);
+}
+.white-box .block-cell-item .tit .van-radio-group {
+  display: flex;
+  justify-content: flex-end;
+}
+.white-box .block-cell-item .tit .van-radio-group .van-radio:not(:first-child) {
+  margin-left: 30rpx;
+}
+.white-box .block-cell-item .tit .textarea {
+  background-color: #F8F8F8;
+  font-size: 30rpx;
+  color: #B7B7B7;
+  border-radius: 10rpx;
+  padding: 30rpx;
+  word-break: break-all;
+}
+.white-box .custom-white-box-content {
+  padding-bottom: 30rpx;
+}
+.z-bg {
+  background: #6600ff;
+  color: #fff;
+}
+.l-bg {
+  background: #0000FF;
+  color: #fff;
+}
+.h-bg {
+  background: #F87A7A;
+  color: #fff;
+}
+.y-bg {
+  background: #e4ce6b;
+  color: #fff;
+}
+.z-br {
+  background: #fff;
+  border: 1px solid #6600ff;
+  color: #6600ff;
+}
+.chaochuyincang {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.infoUpload .van-uploader__upload--disabled {
+  display: none;
+}
+.bottom-button {
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  z-index: 100;
+  height: 160rpx;
+  padding: 35rpx 30rpx;
+  background-color: #fff;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  box-sizing: border-box;
+}
+.bottom-button .btn {
+  height: 100%;
+  line-height: 80rpx;
+  width: 100%;
+  color: #fff;
+  background-color: #6600ff;
+  font-size: 34rpx;
+  border-radius: 10rpx;
+}
+.repair-detail-box {
+  width: 100%;
+  height: 100%;
+}
+.repair-detail-box .page-4 .evaluate-box {
+  padding: 20rpx 30rpx;
+  background: #f8f8f8;
+  border: 1rpx solid #ebedf0;
+  border-radius: 100rpx;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  box-sizing: border-box;
+}
+.repair-detail-box .page-1 .textarea {
+  padding: 20rpx;
+  border-radius: 10rpx;
+  background: #f8f8f8;
+  box-sizing: border-box;
+}
+.repair-detail-box .page-3 {
+  padding-bottom: 100rpx;
+}
+.repair-detail-box .page-3 .input-item {
+  padding: 0;
+}
+.repair-detail-box .page-3 .custom-item-tit {
+  height: 13.333vw;
+  font-size: 4.267vw;
+  color: #333;
+  padding: 2.667vw 0;
+  position: relative;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  box-sizing: border-box;
+}
+.repair-detail-box .page-3 .custom-item-tit .tit::after {
+  content: "";
+  width: 0.8vw;
+  height: 90%;
+  background-color: #976dec;
+  border-radius: 0.4vw;
+  position: absolute;
+  left: 0;
+  top: 50%;
+  -webkit-transform: translateY(-50%);
+  transform: translateY(-50%);
+}
+.repair-detail-box .page-3 .tit {
+  position: relative;
+}
+.repair-detail-box .page-4 .custom-item-tit {
+  height: 13.333vw;
+  font-size: 4.267vw;
+  color: #333;
+  padding: 2.667vw 0;
+  position: relative;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  box-sizing: border-box;
+}
+.repair-detail-box .page-4 .custom-item-tit .tit::after {
+  content: "";
+  width: 0.8vw;
+  height: 90%;
+  background-color: #976dec;
+  border-radius: 0.4vw;
+  position: absolute;
+  left: 0;
+  top: 50%;
+  -webkit-transform: translateY(-50%);
+  transform: translateY(-50%);
+}
+.repair-detail-box .page-4 .tit {
+  padding-left: 2.667vw;
+  position: relative;
+}
+.repair-detail-box .page-4 ._s .evaluate-box {
+  padding: 20px 30px;
+  background: #f8f8f8;
+  border: 1px solid #ebedf0;
+  border-radius: 100px;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  box-sizing: border-box;
+}
+.repair-detail-box .annex-list-box {
+  display: flex;
+}
+.repair-detail-box .annex-list-box::after {
+  display: block;
+  content: "";
+  width: 30%;
+  height: 0px;
+}
+.repair-detail-box .annex-list-box .annex-item {
+  width: 240rpx;
+  height: 240rpx;
+  border: 1px solid #CCCCCC;
+  margin-bottom: 20px;
+  position: relative;
+  overflow: hidden;
+}
+.repair-detail-box .annex-list-box .annex-item > ._img {
+  width: 240rpx;
+  height: 240rpx;
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  margin: auto;
+  display: block;
+}
+.repair-detail-box .annex-list-box .annex-item video {
+  width: 100%;
+  height: 100%;
+}
+.repair-detail-box .tel-box {
+  display: flex;
+  align-items: center;
+}
+.repair-detail-box .tel-box .custom-tel-component {
+  margin-left: 20px;
+}
+
+@charset "UTF-8";
+/* 文字尺寸 */
+/*文字颜色*/
+/* 边框颜色 */
+/* 图片加载中颜色 */
+/* 行为相关颜色 */
+.normal-tip {
+  font-size: 24rpx;
+  line-height: 40rpx;
+  padding: 4rpx 10rpx;
+}
+.normal-tip.by {
+  border-radius: 20rpx;
+}
+.normal-tip.yd {
+  border-radius: 5rspx;
+}
+.fixed-page-content {
+  width: 100%;
+  height: 100%;
+  padding-bottom: 120rpx;
+  box-sizing: border-box;
+}
+.page-content {
+  width: 100%;
+  height: 100%;
+}
+.white-box {
+  width: 100%;
+  font-size: 28rpx;
+  padding: 0 40rpx;
+  background-color: #ffffff;
+  box-sizing: border-box;
+}
+.white-box:not(:last-child) {
+  margin-bottom: 30rpx;
+}
+.white-box .flex-item {
+  align-items: center;
+}
+.white-box .flex-item .tel-box {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+}
+.white-box .flex-item .tel-box .custom-tel-component {
+  margin-left: 20rpx;
+}
+.white-box .cell-item {
+  color: var(--Black);
+  padding: 30rpx 0;
+  display: flex;
+  justify-content: space-between;
+  position: relative;
+}
+.white-box .cell-item::after {
+  position: absolute;
+  box-sizing: border-box;
+  content: ' ';
+  pointer-events: none;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  border-bottom: 2rpx solid #ebedf0;
+  -webkit-transform: scaleY(0.5);
+  transform: scaleY(0.5);
+}
+.white-box .cell-item > .label {
+  flex: 1;
+  width: 30%;
+}
+.white-box .cell-item > .label .tips {
+  font-size: 22rpx;
+  color: var(--greyColor);
+}
+.white-box .cell-item > .label.required {
+  position: relative;
+}
+.white-box .cell-item > .label.required::after {
+  content: '*';
+  color: var(--Red);
+  position: absolute;
+  font-size: 30rpx;
+  top: -15rpx;
+  left: -15rpx;
+}
+.white-box .cell-item > .tit {
+  color: var(--Black);
+  flex: 1;
+  width: 70%;
+  text-align: right;
+}
+.white-box .cell-item > .tit .van-radio-group {
+  display: flex;
+  justify-content: flex-end;
+}
+.white-box .cell-item > .tit .van-radio-group .van-radio:not(:first-child) {
+  margin-left: 30rpx;
+}
+.white-box .block-cell-item {
+  color: var(--Black);
+  padding: 30rpx 0;
+  position: relative;
+}
+.white-box .block-cell-item::after {
+  position: absolute;
+  box-sizing: border-box;
+  content: " ";
+  pointer-events: none;
+  right: 16rpx;
+  bottom: 0;
+  left: 16rpx;
+  border-bottom: 2rpx solid #ebedf0;
+  -webkit-transform: scaleY(0.5);
+  transform: scaleY(0.5);
+}
+.white-box .block-cell-item .label {
+  width: 100%;
+  padding-bottom: 30rpx;
+}
+.white-box .block-cell-item .label.required {
+  position: relative;
+}
+.white-box .block-cell-item .label.required::after {
+  content: '*';
+  color: var(--Red);
+  position: absolute;
+  font-size: 30rpx;
+  top: -15rpx;
+  left: -15rpx;
+}
+.white-box .block-cell-item .label .tips {
+  font-size: 22rpx;
+  color: var(--greyColor);
+}
+.white-box .block-cell-item .tit {
+  width: 100%;
+  color: var(--Black);
+}
+.white-box .block-cell-item .tit .van-radio-group {
+  display: flex;
+  justify-content: flex-end;
+}
+.white-box .block-cell-item .tit .van-radio-group .van-radio:not(:first-child) {
+  margin-left: 30rpx;
+}
+.white-box .block-cell-item .tit .textarea {
+  background-color: #F8F8F8;
+  font-size: 30rpx;
+  color: #B7B7B7;
+  border-radius: 10rpx;
+  padding: 30rpx;
+  word-break: break-all;
+}
+.white-box .custom-white-box-content {
+  padding-bottom: 30rpx;
+}
+.z-bg {
+  background: #6600ff;
+  color: #fff;
+}
+.l-bg {
+  background: #0000FF;
+  color: #fff;
+}
+.h-bg {
+  background: #F87A7A;
+  color: #fff;
+}
+.y-bg {
+  background: #e4ce6b;
+  color: #fff;
+}
+.z-br {
+  background: #fff;
+  border: 1px solid #6600ff;
+  color: #6600ff;
+}
+.chaochuyincang {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.image-repairDispatch-box .van-image-preview__close-icon {
+  color: #fff;
+  font-size: 64px;
+}
+

Datei-Diff unterdrückt, da er zu groß ist
+ 391 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/index.js


+ 19 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/index.json

@@ -0,0 +1,19 @@
+{
+  "navigationBarTitleText": "服务确认",
+  "enablePullDownRefresh": true,
+  "onReachBottomDistance": 100,
+  "component": true,
+  "usingComponents": {
+    "van-empty": "/wxcomponents/weapp/dist/empty/index",
+    "van-button": "/wxcomponents/weapp/dist/button/index",
+    "van-toast": "/wxcomponents/weapp/dist/toast/index",
+    "van-field": "/wxcomponents/weapp/dist/field/index",
+    "van-popup": "/wxcomponents/weapp/dist/popup/index",
+    "van-picker": "/wxcomponents/weapp/dist/picker/index",
+    "van-dialog": "/wxcomponents/weapp/dist/dialog/index",
+    "van-icon": "/wxcomponents/weapp/dist/icon/index",
+    "van-tab": "/wxcomponents/weapp/dist/tab/index",
+    "van-tabs": "/wxcomponents/weapp/dist/tabs/index",
+    "van-uploader": "/wxcomponents/weapp/dist/uploader/index"
+  }
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/index.wxml


+ 263 - 0
unpackage/dist/dev/mp-weixin/pages/subPackages/serve-confirm/index.wxss

@@ -0,0 +1,263 @@
+@charset "UTF-8";
+/* 文字尺寸 */
+/*文字颜色*/
+/* 边框颜色 */
+/* 图片加载中颜色 */
+/* 行为相关颜色 */
+.normal-tip.data-v-f675044c {
+  font-size: 24rpx;
+  line-height: 40rpx;
+  padding: 4rpx 10rpx;
+}
+.normal-tip.by.data-v-f675044c {
+  border-radius: 20rpx;
+}
+.normal-tip.yd.data-v-f675044c {
+  border-radius: 5rspx;
+}
+.fixed-page-content.data-v-f675044c {
+  width: 100%;
+  height: 100%;
+  padding-bottom: 120rpx;
+  box-sizing: border-box;
+}
+.page-content.data-v-f675044c {
+  width: 100%;
+  height: 100%;
+}
+.white-box.data-v-f675044c {
+  width: 100%;
+  font-size: 28rpx;
+  padding: 0 40rpx;
+  background-color: #ffffff;
+  box-sizing: border-box;
+}
+.white-box.data-v-f675044c:not(:last-child) {
+  margin-bottom: 30rpx;
+}
+.white-box .flex-item.data-v-f675044c {
+  align-items: center;
+}
+.white-box .flex-item .tel-box.data-v-f675044c {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+}
+.white-box .flex-item .tel-box .custom-tel-component.data-v-f675044c {
+  margin-left: 20rpx;
+}
+.white-box .cell-item.data-v-f675044c {
+  color: var(--Black);
+  padding: 30rpx 0;
+  display: flex;
+  justify-content: space-between;
+  position: relative;
+}
+.white-box .cell-item.data-v-f675044c::after {
+  position: absolute;
+  box-sizing: border-box;
+  content: ' ';
+  pointer-events: none;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  border-bottom: 2rpx solid #ebedf0;
+  -webkit-transform: scaleY(0.5);
+  transform: scaleY(0.5);
+}
+.white-box .cell-item > .label.data-v-f675044c {
+  flex: 1;
+  width: 30%;
+}
+.white-box .cell-item > .label .tips.data-v-f675044c {
+  font-size: 22rpx;
+  color: var(--greyColor);
+}
+.white-box .cell-item > .label.required.data-v-f675044c {
+  position: relative;
+}
+.white-box .cell-item > .label.required.data-v-f675044c::after {
+  content: '*';
+  color: var(--Red);
+  position: absolute;
+  font-size: 30rpx;
+  top: -15rpx;
+  left: -15rpx;
+}
+.white-box .cell-item > .tit.data-v-f675044c {
+  color: var(--Black);
+  flex: 1;
+  width: 70%;
+  text-align: right;
+}
+.white-box .cell-item > .tit .van-radio-group.data-v-f675044c {
+  display: flex;
+  justify-content: flex-end;
+}
+.white-box .cell-item > .tit .van-radio-group .van-radio.data-v-f675044c:not(:first-child) {
+  margin-left: 30rpx;
+}
+.white-box .block-cell-item.data-v-f675044c {
+  color: var(--Black);
+  padding: 30rpx 0;
+  position: relative;
+}
+.white-box .block-cell-item.data-v-f675044c::after {
+  position: absolute;
+  box-sizing: border-box;
+  content: " ";
+  pointer-events: none;
+  right: 16rpx;
+  bottom: 0;
+  left: 16rpx;
+  border-bottom: 2rpx solid #ebedf0;
+  -webkit-transform: scaleY(0.5);
+  transform: scaleY(0.5);
+}
+.white-box .block-cell-item .label.data-v-f675044c {
+  width: 100%;
+  padding-bottom: 30rpx;
+}
+.white-box .block-cell-item .label.required.data-v-f675044c {
+  position: relative;
+}
+.white-box .block-cell-item .label.required.data-v-f675044c::after {
+  content: '*';
+  color: var(--Red);
+  position: absolute;
+  font-size: 30rpx;
+  top: -15rpx;
+  left: -15rpx;
+}
+.white-box .block-cell-item .label .tips.data-v-f675044c {
+  font-size: 22rpx;
+  color: var(--greyColor);
+}
+.white-box .block-cell-item .tit.data-v-f675044c {
+  width: 100%;
+  color: var(--Black);
+}
+.white-box .block-cell-item .tit .van-radio-group.data-v-f675044c {
+  display: flex;
+  justify-content: flex-end;
+}
+.white-box .block-cell-item .tit .van-radio-group .van-radio.data-v-f675044c:not(:first-child) {
+  margin-left: 30rpx;
+}
+.white-box .block-cell-item .tit .textarea.data-v-f675044c {
+  background-color: #F8F8F8;
+  font-size: 30rpx;
+  color: #B7B7B7;
+  border-radius: 10rpx;
+  padding: 30rpx;
+  word-break: break-all;
+}
+.white-box .custom-white-box-content.data-v-f675044c {
+  padding-bottom: 30rpx;
+}
+.z-bg.data-v-f675044c {
+  background: #6600ff;
+  color: #fff;
+}
+.l-bg.data-v-f675044c {
+  background: #0000FF;
+  color: #fff;
+}
+.h-bg.data-v-f675044c {
+  background: #F87A7A;
+  color: #fff;
+}
+.y-bg.data-v-f675044c {
+  background: #e4ce6b;
+  color: #fff;
+}
+.z-br.data-v-f675044c {
+  background: #fff;
+  border: 1px solid #6600ff;
+  color: #6600ff;
+}
+.chaochuyincang.data-v-f675044c {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.repair .top-add.data-v-f675044c {
+  background-color: #fff;
+  padding: 30rpx;
+  margin-bottom: 20rpx;
+  text-align: right;
+  box-shadow: 0rpx 5rpx 10rpx 0rpx rgba(0, 0, 0, 0.05);
+}
+.repair .top-add ._i.data-v-f675044c {
+  font-size: 36rpx;
+  color: #6600FF;
+  margin-right: 15rpx;
+}
+.repair .top-add .txt.data-v-f675044c {
+  font-size: 32rpx;
+  color: #6600FF;
+}
+.repair .info-list.data-v-f675044c {
+  height: calc(100vh - 124rpx);
+  overflow-y: auto;
+}
+.repair .info-list .info-item.data-v-f675044c {
+  background-color: #fff;
+  padding: 20rpx 30rpx;
+  margin-bottom: 20rpx;
+}
+.repair .info-list .info-item .info-top.data-v-f675044c {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.repair .info-list .info-item .info-top .left.data-v-f675044c {
+  width: 286rpx;
+  height: 168rpx;
+  font-size: 0;
+  border-radius: 10rpx;
+  overflow: hidden;
+}
+.repair .info-list .info-item .info-top .left ._img.data-v-f675044c {
+  width: 100%;
+  height: 100%;
+}
+.repair .info-list .info-item .info-top .right.data-v-f675044c {
+  align-self: flex-start;
+  width: 380rpx;
+}
+.repair .info-list .info-item .info-top .right .tit.data-v-f675044c {
+  width: 380rpx;
+  font-size: 32rpx;
+  line-height: 1.4;
+  font-weight: bold;
+  color: #333333;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  display: -webkit-box;
+  -webkit-line-clamp: 2;
+  -webkit-box-orient: vertical;
+  margin-bottom: 20rpx;
+}
+.repair .info-list .info-item .info-top .right .txt.data-v-f675044c {
+  font-size: 28rpx;
+  color: #666;
+}
+.repair .info-list .info-item .info-bottom.data-v-f675044c {
+  margin-top: 20rpx;
+  padding-top: 20rpx;
+  border-top: 1rpx dashed #dbdbdb;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.repair .info-list .info-item .info-bottom .left ._i.data-v-f675044c {
+  font-size: 30rpx;
+  color: #999999;
+  margin-left: 10rpx;
+}
+.repair .info-list .info-item .info-bottom .left ._span.data-v-f675044c {
+  font-size: 28rpx;
+  color: #999999;
+}
+