跳转至内容

技术之美

29 主题 95 帖子

No decsciption available

  • 开发Java版Odoo,Avalon,请各位道友交流

    2
    0 赞同
    2 帖子
    1k 浏览
    D
    虽然不会 JAVA,但是看了你的开发视频,很酷。 另外这里有一个国外的 JAVA 版本的 Odoo 复刻:https://github.com/axelor/axelor-open-platform 供你参考
  • Python 静态类型检查器- Mypy

    2
    1 赞同
    2 帖子
    2k 浏览
    卓忆
    谢谢分享,言简意赅
  • 请问 tree 背景颜色在怎么设置 求解

    1
    0 赞同
    1 帖子
    1k 浏览
    Q
    想设置 联系人tree 根据余额情况改变背景颜色
  • 免费顺丰快递单号查询电子面单api接口对接(快递鸟案例)

    1
    0 赞同
    1 帖子
    2k 浏览
    F
    顺丰目前提供了两种对接方式: 一种是开发者自助对接,需要注册丰桥账户后,申请成为开发者,然后上传电子面单等操作,较为繁琐; 还有一种方式就是这里要重点介绍的,第三方软件对接(例如快递鸟),对接起来非常方便。 [image: 104714kjimirjqbsuirbq6.jpg] 物流轨迹查询-使用的物流单号和快递单号即可实现查询物流信息。 对接在电商网站或ERP系统上后,仅输入单号就可以查询物流,不需要物流编码。是通过两个接口实现的,一个是快递物流查询接口,一个是单号识别的接口 接口提供:快递鸟 接口名称:即时查询接口+单号识别接口 编写语言:C# 顺丰快递单号接口通过快递鸟接口对接简单方便,顺丰速运快递查询接口API和电子面单接口可以通过快递鸟对接,通过顺丰单号和手机号后四位查询轨迹信息,如果是通过快递鸟下单获得的顺丰单号,可通过单号直接查询,具体下载快递鸟接口技术文档查看接口说明。 即时查询接口demo: using System; usingSystem.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Net; using System.IO; namespace KdGoldAPI { public class KdApiSearchDemo { //电商ID private string EBusinessID = "??????"; //电商加密私钥,注意保管,不要泄漏 private string AppKey = "??????"; //请求url private string ReqURL ="http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx"; /// /// Json方式 查询订单物流轨迹 /// /// public string getOrderTracesByJson() { string requestData ="{'OrderCode':'','ShipperCode':'SF','LogisticCode':'589707398027'}"; Dictionaryparam = new Dictionary(); param.Add("RequestData",HttpUtility.UrlEncode(requestData, Encoding.UTF8)); param.Add("EBusinessID",EBusinessID); param.Add("RequestType","1002"); string dataSign =encrypt(requestData, AppKey, "UTF-8"); param.Add("DataSign",HttpUtility.UrlEncode(dataSign, Encoding.UTF8)); param.Add("DataType","2"); string result = sendPost(ReqURL,param); //根据公司业务处理返回的信息...... return result; } /// /// Post方式提交数据,返回网页的源代码 /// /// 发送请求的 URL /// 请求的参数集合 /// 远程资源的响应结果 private string sendPost(string url,Dictionary param) { string result = ""; StringBuilder postData = newStringBuilder(); if (param != null &¶m.Count > 0) { foreach (var p in param) { if (postData.Length > 0) { postData.Append("&"); } postData.Append(p.Key); postData.Append("="); postData.Append(p.Value); } } byte[] byteData =Encoding.GetEncoding("UTF-8").GetBytes(postData.ToString()); try { HttpWebRequest request =(HttpWebRequest)WebRequest.Create(url); request.ContentType ="application/x-www-form-urlencoded"; request.Referer = url; request.Accept ="*/*"; request.Timeout = 30 * 1000; request.UserAgent ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR3.5.30729)"; request.Method ="POST"; request.ContentLength =byteData.Length; Stream stream =request.GetRequestStream(); stream.Write(byteData, 0,byteData.Length); stream.Flush(); stream.Close(); HttpWebResponse response =(HttpWebResponse)request.GetResponse(); Stream backStream =response.GetResponseStream(); StreamReader sr = newStreamReader(backStream, Encoding.GetEncoding("UTF-8")); result = sr.ReadToEnd(); sr.Close(); backStream.Close(); response.Close(); request.Abort(); } catch (Exception ex) { result = ex.Message; } return result; } /// ///电商Sign签名 /// ///内容 ///Appkey ///URL编码 ///DataSign签名 private string encrypt(String content,String keyValue, String charset) { if (keyValue != null) { return base64(MD5(content +keyValue, charset), charset); } return base64(MD5(content,charset), charset); } /// /// 字符串MD5加密 /// ///要加密的字符串 ///编码方式 ///密文 private string MD5(string str, stringcharset) { byte[] buffer =System.Text.Encoding.GetEncoding(charset).GetBytes(str); try { System.Security.Cryptography.MD5CryptoServiceProvidercheck; check = newSystem.Security.Cryptography.MD5CryptoServiceProvider(); byte[] somme =check.ComputeHash(buffer); string ret = ""; foreach (byte a in somme) { if (a < 16) ret += "0" +a.ToString("X"); else ret +=a.ToString("X"); } return ret.ToLower(); } catch { throw; } } /// /// base64编码 /// /// 内容 /// 编码方式 /// private string base64(String str,String charset) { returnConvert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str)); } } } 单号识别接口demo: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Web; namespace KdGoldAPI { public class KdApiOrderDistinguish { //电商ID private string EBusinessID = "??????"; //电商加密私钥,注意保管,不要泄漏 private string AppKey = "???????"; //请求url //测试环境 private string ReqURL ="http://testapi.kdniao.cc:8081/Ebusiness/EbusinessOrderHandle.aspx"; //正式环境 //private string ReqURL ="http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx"; /// /// Json方式 单号识别 /// /// public string orderTracesSubByJson() { string requestData = "{'LogisticCode':'3967950525457'}"; Dictionaryparam = new Dictionary(); param.Add("RequestData",HttpUtility.UrlEncode(requestData, Encoding.UTF8)); param.Add("EBusinessID",EBusinessID); param.Add("RequestType","2002"); string dataSign =encrypt(requestData, AppKey, "UTF-8"); param.Add("DataSign",HttpUtility.UrlEncode(dataSign, Encoding.UTF8)); param.Add("DataType","2"); string result = sendPost(ReqURL,param); //根据公司业务处理返回的信息...... return result; } /// /// Post方式提交数据,返回网页的源代码 /// /// 发送请求的 URL /// 请求的参数集合 /// 远程资源的响应结果 private string sendPost(string url,Dictionary param) { string result = ""; StringBuilder postData = newStringBuilder(); if (param != null && param.Count> 0) { foreach (var p in param) { if (postData.Length > 0) { postData.Append("&"); } postData.Append(p.Key); postData.Append("="); postData.Append(p.Value); } } byte[] byteData =Encoding.GetEncoding("UTF-8").GetBytes(postData.ToString()); try { HttpWebRequest request =(HttpWebRequest)WebRequest.Create(url); request.ContentType ="application/x-www-form-urlencoded"; request.Referer = url; request.Accept = "*/*"; request.Timeout = 30 * 1000; request.UserAgent ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR3.5.30729)"; request.Method ="POST"; request.ContentLength =byteData.Length; Stream stream =request.GetRequestStream(); stream.Write(byteData, 0,byteData.Length); stream.Flush(); stream.Close(); HttpWebResponse response =(HttpWebResponse)request.GetResponse(); Stream backStream =response.GetResponseStream(); StreamReader sr = newStreamReader(backStream, Encoding.GetEncoding("UTF-8")); result = sr.ReadToEnd(); sr.Close(); backStream.Close(); response.Close(); request.Abort(); } catch (Exception ex) { result = ex.Message; } return result; } /// ///电商Sign签名 /// ///内容 ///Appkey ///URL编码 ///DataSign签名 private string encrypt(String content,String keyValue, String charset) { if (keyValue != null) { return base64(MD5(content +keyValue, charset), charset); } return base64(MD5(content,charset), charset); } /// /// 字符串MD5加密 /// ///要加密的字符串 ///编码方式 ///密文 private string MD5(string str, stringcharset) { byte[] buffer =System.Text.Encoding.GetEncoding(charset).GetBytes(str); try { System.Security.Cryptography.MD5CryptoServiceProvider check; check = newSystem.Security.Cryptography.MD5CryptoServiceProvider(); byte[] somme =check.ComputeHash(buffer); string ret = ""; foreach (byte a in somme) { if (a < 16) ret += "0" +a.ToString("X"); else ret +=a.ToString("X"); } return ret.ToLower(); } catch { throw; } } /// /// base64编码 /// /// 内容 /// 编码方式 /// private string base64(String str,String charset) { returnConvert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str)); } } }
  • 0 赞同
    1 帖子
    3k 浏览
    F
    快递查询API接口是使用的物流单号即可实现查询物流信息。主要应用在电商商城、ERP系统商、WMS系统商、快递柜、银行等企业。多家快递物流公司接口统一接入,建议对接接口提供商,一次性可以接入多家快递,在后期的技术维护也会省下很多工作。 目前快递查询API接口有两种实现方式,一种是主动查询,一种是订阅接口推送数据。以快递鸟接口为例(接口对接需要接口秘钥,这里用的是测试的,不能够正式使用,可以到快递鸟官网申请,是免费申请秘钥的)最后附有一个的demo,更多demo可登陆快递鸟网站查询。 一.主动查询(即时查询API) 1)接口规则 a、查询接口支持按照运单号查询(单个查询,并发不超过10个/S)。 b、指定的物流运单号选择相应的快递公司编码,格式不对或则编码错误都会返失败的信息。如圆通快递物流单号应选择圆通快递公司编码(YTO) c、返回的物流跟踪信息按照发生的时间升序排列。 d、接口指令1002。 e、请求地址:快递鸟注册 2)系统级和应用级输入参数系统级输入参数 ![0_1565163809943_中1.png](正在上传 100%) ! 3)返回结果参数 ![0_1565163818557_中2.png](正在上传 100%) 4)JSON请求示例 { “OrderCode”: “”, “ShipperCode”: “SF”, “LogisticCode”: “118650888018” } // "YTO"为圆通快递公司编码,其他编码可在快递鸟官网下载 5)JSON返回示例 //没有物流轨迹的 { “EBusinessID”: “1109259”, "Traces":[], “OrderCode”: “”, “ShipperCode”: “SF”, “LogisticCode”: “118461988807”, “Success”: true, “Reason”: null } //有物流轨迹的 { “EBusinessID”: “1109259”, "OrderCode":"", “ShipperCode”: “SF”, “LogisticCode”: “118461988807”, “Success”: true, "CallBack":"", “State”: 3, “Reason”: null, "Traces":[ { "AcceptTime": "2014/06/25 08:05:37", "AcceptStation": "正在派件..(派件人:邓裕富,电话:18718866310)[深圳 市]", "Remark": null }, { "AcceptTime": "2014/06/25 04:01:28", "AcceptStation": "快件在 深圳集散中心 ,准备送往下一站 深圳 [深圳市]", "Remark": null }, { "AcceptTime": "2014/06/2501:41:06", "AcceptStation": "快件在 深圳集散中心 [深圳市]", "Remark": null }, { "AcceptTime": "2014/06/24 20:18:58", "AcceptStation": "已收件[深圳市]", "Remark": null }, { "AcceptTime": "2014/06/24 20:55:28", "AcceptStation": "快件在 深圳 ,准备送往下一站 深圳集散中心 [深圳市]", "Remark": null }, { "AcceptTime": "2014/06/25 10:23:03", "AcceptStation": "派件已签收[深圳市]", "Remark": null }, { "AcceptTime": "2014/06/25 10:23:03", "AcceptStation": "签收人是:已签收[深圳市]", "Remark": null } ] 二.订阅接口推送数据(物流跟踪API) 订阅查询接口是定制化服务,用户可将订单信息订阅给快递公司,快递公司更新轨迹后,将实时转换成标准接口形式,推送给用户,起到实时推送的作用,提高效率。 同时用户订阅的数据还能选择是否通知快递员上门,实现在线下单功能。另外,快递鸟还有在途监控、电子面单等其他的接口方案,可以根据公司需求来选择。 1)接口规则 a、订单接收的信息(分给了的网点,业务员的信息),会通过推送接口推给客户(订阅并发不超过30次/S)客户需要按要求实现接口。 b、仅支持Json格式。 c、请求指令1008。 d、测试接口地址: e、联调通过后请更换为正式地址: f、分发及订阅接口需要客户方实现回调接口,回调RequestType(1008) 2)系统级和应用级参数 RequestData(必填参数,请求内容,JSON格式,须和DataType一致)) 用户自定义回调信息 WareHouseID 邮费支付方式: 1-现付,2-到付,3-月结,4-第三方支付 ExpType String O 快递类型:1-标准快件 Cost Double O 寄件费(运费) OtherCost Double O 其他费用 Receiver Company String O 收件人公司 Name String O 收件人 Tel String O 电话 Mobile String O 手机 PostCode String O 收件人邮编 ProvinceName String O 收件省(如广东省,不要缺少“省”) CityName String O 收件市(如深圳市,不要缺少“市”) ExpAreaName String O 收件区(如福田区,不要缺少“区”或“县”) Address String O 收件人详细地址 Sender Company String O 发件人公司 Name String O 发件人 Tel String O 发件人电话 Mobile String O 发件人手机 PostCode String O 发件人邮编 ProvinceName String O 发件省(如广东省,不要缺少“省”) CityName String O 发件市(如深圳市,不要缺少“市”) ExpAreaName String O 发件区(如福田区,不要缺少“区”或“县”) Address String O 发件详细地址 StartDate String O 上门取货时间段: "yyyy-MM-dd HH:mm:ss"格式化,本文中所有时间格式相同 EndDate String O Weight Double O 物品总重量kg Quantity Int O 件数/包裹数 Volume Double O 物品总体积m3 Remark String O 备注 IsNotice Int O 是否分发到快递公司:1-不分发;0-分发.默认为0 IsSendMessage Int O 是否订阅短信 0-不需要;1-需要 AddService Name String 0 增值服务名称 Value String 0 增值服务值 CustomerID String 0 客户标识(选填) Commodity GoodsName String O 商品名称 GoodsCode String O 商品编码 Goodsquantity Int O 件数 GoodsPrice Double O 商品价格 GoodsWeight Double O 商品重量kg GoodsDesc String O 商品描述 GoodsVol Double O 商品体积m3 EBusinessID String R 商户ID RequestType String R 请求指令类型:1008 DataSign String R 数据内容签名 DataType String R 请求、返回数据类型:2-json; 物流跟踪APIdemo import java.io.BufferedReader;import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder; import java.util.HashMap;import java.util.Map;import java.security.MessageDigest; /*快递鸟订阅推送 2.0接口ID和Key请到官网申请:快递单号查询接口 //DEMO public static void main(String[] args) { KdniaoSubscribeAPI api = new KdniaoSubscribeAPI(); try { String result = api.orderTracesSubByJson(); System.out.print(result); } catch (Exception e) { e.printStackTrace(); } } //电商ID private String EBusinessID="请到快递鸟官网申请http://www.kdniao.com/ServiceApply.aspx"; //电商加密私钥,快递鸟提供,注意保管,不要泄漏 private String AppKey="请到快递鸟官网申请http://www.kdniao.com/ServiceApply.aspx"; //测试请求url private String ReqURL = "http://testapi.kdniao.cc:8081/api/dist"; //正式请求url //private String ReqURL = "http://api.kdniao.cc/api/dist"; /** * Json方式 物流信息订阅 * @throws Exception */ public String orderTracesSubByJson() throws Exception{ String requestData="{'OrderCode': 'SF201608081055208281'," + "'ShipperCode':'SF'," + "'LogisticCode':'3100707578976'," + "'PayType':1," + "'ExpType':1," + "'CustomerName':'',"+ "'CustomerPwd':''," + "'MonthCode':''," + "'IsNotice':0," + "'Cost':1.0," + "'OtherCost':1.0," + "'Sender':" + "{" + "'Company':'LV','Name':'Taylor','Mobile':'15018442396','ProvinceName':'上海','CityName':'上海','ExpAreaName':'青浦区','Address':'明珠路73号'}," + "'Receiver':" + "{" + "'Company':'GCCUI','Name':'Yann','Mobile':'15018442396','ProvinceName':'北京','CityName':'北京','ExpAreaName':'朝阳区','Address':'三里屯街道雅秀大厦'}," + "'Commodity':" + "[{" + "'GoodsName':'鞋子','Goodsquantity':1,'GoodsWeight':1.0}]," + "'Weight':1.0," + "'Quantity':1," + "'Volume':0.0," + "'Remark':'小心轻放'}"; Map<String, String> params = new HashMap<String, String>(); params.put("RequestData", urlEncoder(requestData, "UTF-8")); params.put("EBusinessID", EBusinessID); params.put("RequestType", "1008"); String dataSign=encrypt(requestData, AppKey, "UTF-8"); params.put("DataSign", urlEncoder(dataSign, "UTF-8")); params.put("DataType", "2"); String result=sendPost(ReqURL, params); //根据公司业务处理返回的信息...... return result; } /** * MD5加密 * @param str 内容 * @param charset 编码方式 * @throws Exception */ @SuppressWarnings("unused") private String MD5(String str, String charset) throws Exception { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(str.getBytes(charset)); byte[] result = md.digest(); StringBuffer sb = new StringBuffer(32); for (int i = 0; i < result.length; i++) { int val = result[i] & 0xff; if (val <= 0xf) { sb.append("0"); } sb.append(Integer.toHexString(val)); } return sb.toString().toLowerCase(); } /** * base64编码 * @param str 内容 * @param charset 编码方式 * @throws UnsupportedEncodingException */ private String base64(String str, String charset) throws UnsupportedEncodingException{ String encoded = base64Encode(str.getBytes(charset)); return encoded; } @SuppressWarnings("unused") private String urlEncoder(String str, String charset) throws UnsupportedEncodingException{ String result = URLEncoder.encode(str, charset); return result; } /** * 电商Sign签名生成 * @param content 内容 * @param keyValue Appkey * @param charset 编码方式 * @throws UnsupportedEncodingException ,Exception * @return DataSign签名 */ @SuppressWarnings("unused") private String encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exception { if (keyValue != null) { return base64(MD5(content + keyValue, charset), charset); } return base64(MD5(content, charset), charset); } /** * 向指定 URL 发送POST方法的请求 * @param url 发送请求的 URL * @param params 请求的参数集合 * @return 远程资源的响应结果 */ @SuppressWarnings("unused") private String sendPost(String url, Map<String, String> params) { OutputStreamWriter out = null; BufferedReader in = null; StringBuilder result = new StringBuilder(); try { URL realUrl = new URL(url); HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection(); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // POST方法 conn.setRequestMethod("POST"); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.connect(); // 获取URLConnection对象对应的输出流 out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8"); // 发送请求参数 if (params != null) { StringBuilder param = new StringBuilder(); for (Map.Entry<String, String> entry : params.entrySet()) { if(param.length()>0){ param.append("&"); } param.append(entry.getKey()); param.append("="); param.append(entry.getValue()); System.out.println(entry.getKey()+":"+entry.getValue()); } System.out.println("param:"+param.toString()); out.write(param.toString()); } // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream(), "UTF-8")); String line; while ((line = in.readLine()) != null) { result.append(line); } } catch (Exception e) { e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result.toString(); } private static char[] base64EncodeChars = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' }; public static String base64Encode(byte[] data) { StringBuffer sb = new StringBuffer(); int len = data.length; int i = 0; int b1, b2, b3; while (i < len) { b1 = data[i++] & 0xff; if (i == len) { sb.append(base64EncodeChars[b1 >>> 2]); sb.append(base64EncodeChars[(b1 & 0x3) << 4]); sb.append("=="); break; } b2 = data[i++] & 0xff; if (i == len) { sb.append(base64EncodeChars[b1 >>> 2]); sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]); sb.append(base64EncodeChars[(b2 & 0x0f) << 2]); sb.append("="); break; } b3 = data[i++] & 0xff; sb.append(base64EncodeChars[b1 >>> 2]); sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]); sb.append(base64EncodeChars[((b2 & 0x0f) << 2) | ((b3 & 0xc0) >>> 6)]); sb.append(base64EncodeChars[b3 & 0x3f]); } return sb.toString(); }
  • 【转载】ERP并非软件 开源必死无疑

    12
    0 赞同
    12 帖子
    25k 浏览
    D
    挖个坟:smiling_face_with_open_mouth_smiling_eyes: @digitalsatori 大神10年前对楼主的回帖:https://www.shine-it.net/topic/384/转载-erp并非软件-开源必死无疑/2 很精彩啊。不了解开源瞎扯的,以开源为名混世的现在也是到处可见啊。
  • 社区的编辑历史查看如何实现的

    1
    0 赞同
    1 帖子
    1k 浏览
    H
    @digitalsatori 社区里面的编辑历史查看怎么实现的啊,求指教
  • 请求远程帮助,直接支付佣金,进入时候跳出来这个框。odoo 10.

    1
    0 赞同
    1 帖子
    1k 浏览
    Style error The style compilation failed, see the error below. Your recent actions may be the cause, please try reverting the changes you made. (b'', b'NameError: variable @color-white-50 is undefined in - on line 3393, column 31: 3392 &:hover:not(.active) { 3393 background-color: @color-white-50; 3394 } ')This error occured while compiling the bundle 'web.assets_frontend' containing: - /web/static/lib/bootstrap/less/variables.less - /web/static/lib/bootstrap/less/mixins/vendor-prefixes.less - /web/static/lib/bootstrap/less/mixins/buttons.less - /web/static/lib/bootstrap/less/mixins/clearfix.less - /web/static/lib/bootstrap/less/mixins/size.less - /web/static/src/less/variables.less - /web_responsive/static/src/less/variables.less - /web/static/src/less/utils.less - /web_editor/static/src/less/web_editor.variables.less - /web/static/src/less/import_bootstrap.less - /portal/static/src/less/website.ui.less - /portal/static/src/less/website.wrapwrap.less - /portal/static/src/less/bootstrap.extend.less - /portal/static/src/less/portal_frontend.less - /payment/static/src/less/payment_form.less - /sale/static/src/less/sale_portal.less - /website/static/src/less/website.ui.components.less - /website/static/src/less/website.snippets.less - /website/static/src/less/website.zoomodoo.less - /website_mail/static/src/css/website_mail.less - /website_form/static/src/less/website_form.less - /mail/static/src/less/chat_window.less - /mail/static/src/less/thread.less - /im_livechat/static/src/less/im_livechat.less - /website_rating/static/src/less/website_rating.less
  • 技术的东西也可以写得萌萌哒

    2
    1
    0 赞同
    2 帖子
    3k 浏览
    I
    校长这是在家早教吗?(可怜的小孩) 突然想起“為學日益,為道日損。損之又損,以至於無為。無為而無不為。取天下常以無事,及其有事,不足以取天下。”http://ctext.org/dao-de-jing/zh
  • Looks cool

    4
    0 赞同
    4 帖子
    4k 浏览
    @digitalsatori 原来如此,我的windows7乱码,是编码问题,还是系统不支持
  • 看看你的涂鸦能不能被Google人工智能识别

    2
    0 赞同
    2 帖子
    4k 浏览
    L
    [image: 1495853782663-03edf2da-e702-4cc5-a209-e064b5bb3ecf-%E5%9B%BE%E7%89%87-resized.png]
  • 感觉看这个可以上瘾

    3
    0 赞同
    3 帖子
    4k 浏览
    D
    对的,是不是很多人可以对着它看很久。我很多次是看着它整完的。是不是有点无聊
  • 新版社区使用哪个开源论坛

    2
    0 赞同
    2 帖子
    5k 浏览
    W
    是nodebb 国内的论坛被灌水太严重,烦不胜烦。
  • 对不起SAP,我要终结你!--OpenERP 7.0发布之前

    3
    0 赞同
    3 帖子
    10k 浏览
    I
    [quote author=cbcye link=topic=12443.msg22567#msg22567 date=1380440074]一切不以客户利益为根本出发点的旧有模式都终将在历史洪流中湮没,让我们共同迎接企业管理系统新时代的降临,让固步自封的旧势力在新力量面前颤抖吧!![/quote]
  • 电脑使用者的健康保护软件

    8
    0 赞同
    8 帖子
    17k 浏览
    I
    上工治未病
  • Magento电子商务网站+OpenERP集成

    5
    0 赞同
    5 帖子
    15k 浏览
    C
    写个中间层
  • 利用winscp做备份文件同步

    2
    0 赞同
    2 帖子
    8k 浏览
    尚无回复
  • 从杜拉拉升职记谈起——如何采用BPM软件提升公司的执行力

    9
    0 赞同
    9 帖子
    25k 浏览
    S
    这个和LOTUS 工作流比怎么样?
  • Sikuli-截图编程

    3
    0 赞同
    3 帖子
    12k 浏览
    O
    在 TP 组里看过,可以嵌入图片的程序有点类似mathematica,但是功能很强
  • 快来评选最受欢迎的开源内容管理系统!!!

    9
    0 赞同
    9 帖子
    19k 浏览
    M
    当然是 drupal了! 我的网站 prajnagarden.cn 般若园就是drupal的。。 drupal 不单单可以做 cms,还是做 wiki。而起我认为drupal的知识管理比wiki更好!